
Security News
Deno 2.2 Improves Dependency Management and Expands Node.js Compatibility
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
generator-bat
Advanced tools
BAT, the Backbone Application Template; a Yeoman generator collection created by marviq
A Yeoman generator collection created by marviq.
Ever got tired of having to scaffold your new webapp projects over and over again? Moan no more; Yeoman and BAT will do it for you!
Trick question. It's not a thing. It's this guy:
Basically, he wears a top hat, lives in your computer, and waits for you to tell him what kind of application you wish to create.
Not every new computer comes with a Yeoman pre-installed. He lives in the npm package repository. You only have to ask for him once, then he packs up and moves into your hard drive. Make sure you clean up, he likes new and shiny things.
[sudo ]npm install -g yo
Yeoman travels light. He didn't pack any generators when he moved in. You can think of a generator like a plug-in. You get to choose what type of application you wish to create, such as a BAT webapp.
To install BAT from npm, run:
[sudo ]npm install -g generator-bat
Finally, initiate the main app generator:
yo bat
Its subs:
yo bat:view
yo bat:model
yo bat:collection
yo bat:api
Or, if you want a head start, even:
yo bat:demo
With BAT you can immediately start developing your application instead of worrying about getting your project set up first. The main app generator will provide you with the following out of the box:
src/
- a directory for your sources to live in;test/
- a directory to contain your unit tests;dist/
- where all you builds will be assembled;vendor/
- a place for keeping third-party libraries that npm doesn't know how to deliver;Gruntfile.coffee
package.json
AUTHORS
LICENSE
(BSD-3-Clause)README.md
.editorconfig
.gitattributes
.gitmessage
.jshintrc
.coffeelint.json
Gruntfile.coffee
, set up for Browserify, Compass, code linting, -testing, -minification and -documentation generation;To scaffold out a new project like that, simply run:
yo bat
Yeoman will ask you some questions, set everything up and install dependencies for you. Wait a bit for him to complete this and you're all set to go.
Additionally, Yeoman can:
yo bat:demo
;BAT also comes with sub-generators that scaffold out new Backbone models, collections and views.
For each of these Yeoman will deliver a neat set of files, set up, YUIDoc code documentation pre-filled and integrated into existing code for as far as he dares to.
yo bat:view
Placed into the src/views
directory, Yeoman will provide you with *some-view-name*.coffee
and *some-view-name*.hbs
files, respectively containing the class
definition for the *SomeViewName*View
and its handlebars template.
Additionally, Yeoman can:
_*some-view-name*.sass
file into the src/sass/views
directory and insert an @import
for it into src/sass/_views.sass
;Note that for so-called routed views, you would probably want to incorporate this view into your webapp's main router.coffee
. Yeoman would have liked to do this for you too but is too afraid to break your code, so he doesn't.
yo bat:model
Yeoman will provide you with a *some-model-name*.coffee
file containing the class
definition for *SomeModelName*Model
and place it into the src/models
directory.
Optionally, Yeoman can:
class
itself;yo bat:collection
Yeoman will provide you with a *some-collection-name*.coffee
file containing the class
definition for *SomeCollectionName*Collection
and place it into the src/collections
directory.
Furthermore, Yeoman can:
class
itself;yo bat:api
An API is an instance of the BAT provided ApiServicesCollection
which lives in the src/apis/
section of your project map. Its purpose is, in essence, to
have a convenient way to organize the endpoint urls of a backend API's services relative to the common base-url defined for that API.
BAT also comes packed with a demo webapp implementation showcasing its features. To get this, either answer yes to the relevant prompt from an initial yo bat
run, or when you answered no there earlier, invoke:
yo bat:demo
Note: that the latter will result in a few clashes with some of the files produced from the earlier yo bat
run. These are however, caveat codor, harmless.
After you're all set up, you'll want to build your project; this is where Grunt comes in:
grunt dev
This will first do a development build (all builds will be assembled into the dist
directory btw), and then enter a watch-for-changes -> re-build loop.
Grunt can do more than just that; here's a recap of common grunt idioms:
command | description |
---|---|
grunt [default] | shortcut for grunt dist unless the GRUNT_TASKS environment variable specifies a space separated list of alternative tasks to run instead; |
grunt dist | does a for-production, non-debugging, all-parts, tested, minified build plus artifacts; |
grunt debug | does a for-testing, debugging, all-parts except documentation, tested, as-is build; |
grunt dev | does a for-local, debugging, all-parts except documentation, as-is build; (Note that this variant doesn't exit. Instead it'll keep a close watch on filesystem changes, selectively re-triggering part builds as needed) |
grunt doc | will build just the code documentation; |
grunt lint | will just lint your code; |
grunt test | will run your test suite; |
grunt test:dev | will run your test suite and will keep monitoring it for changes, triggering re-runs; |
grunt --help | will show you all of the above and the kitchen sink; |
For both building and then launching the code documentation in your browser, BAT also supplies this convenient shortcut:
npm run doc
BAT comes with support for unit testing using Karma, Jasmine and PhantomJS.
Unit testing is an integrated build step in both dist
and debug
build runs, but can also be run independently as:
grunt test
And as watched, continuous test runs as:
grunt test:dev
The latter invocation, while it is kept running, also offers the opportunity to launch a test suite run in any browser, simply by directing it to this url:
http://localhost:9876/debug.html
Do not forget to open your dev tools and browser console there!
See CONTRIBUTING.
See CHANGELOG for versions >0.1.27
; For older versions, refer to the
releases on GitHub for a detailed log of changes.
FAQs
BAT, the Backbone Application Template; a Yeoman generator collection created by marviq
The npm package generator-bat receives a total of 23 weekly downloads. As such, generator-bat popularity was classified as not popular.
We found that generator-bat demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
Security News
React's CRA deprecation announcement sparked community criticism over framework recommendations, leading to quick updates acknowledging build tools like Vite as valid alternatives.
Security News
Ransomware payment rates hit an all-time low in 2024 as law enforcement crackdowns, stronger defenses, and shifting policies make attacks riskier and less profitable.