A Yeoman generator for the modern front-end artisan designed to help you craft sustainable code for the web.
✔ Install Yeoman CLI tool, Grunt CLI tool, and generator-omaha node module globally
npm install --global yo grunt-cli generator-omaha
✔ Create an empty directory and cd into it
mkdir my-project && cd my-project
✔ Run omaha generator
yo omaha
✔ Make some choices
✔ Start creating your app!
generator-omaha
strives to enable developers of various skill and experience to more easily implement patterns and architectures with minimal time and effort. Specifically, generator-omaha
enables the following patterns and capabilities:
The default sub-generator may be for a web app, but generator-omaha
also has sub-generators for crafting:
After scaffolding a new project with
yo omaha
...
npm start
, then...
npm run lint:watch
npm run test:watch
grunt styling
npm test
npm run lint
npm run dev
(linux only)npm run demo
grunt cover open:coverage
grunt docs open:docs
grunt docs open:styleguide
Beyond
yo omaha --help
--defaults
)yo omaha
yo omaha --defaults
yo omaha --defaults --slim --src src
yo omaha --defaults --use-webpack
yo omaha --defaults --use-browserify --use-jest
yo omaha --defaults --template-technology lodash --skip-coveralls
Available options
Default in bold
--defaults
: scaffold app with no user input using defaults--slim
: use with --defaults
to perform "slim" install (all options skipped)--src
: use with --defaults
to select custom source directory for app and assets files--amd
: use AMD module format (with r.js as script bundler)--use-browserify
: use Browserify as script bundler (auto selects CommonJS module format)--use-jest
: use Facebook's Jest instead of mocha (auto selects CommonJS module format)--use-webpack
: use Webpack as script bundler (auto selects CommonJS module format and Jest test framework)--use-rust
: Add folder structure, sample file, and build scripts for WebAssembly development using Rust (rustc
and wasm-gc
required)--skip-imagemin
: use with --defaults
--css-preprocessor
: less
| sass
| none
--template-technology
: handlebars
| lodash
But wait, there's more! Read about all the available generators!
This project strives to follow the principles of semantic versioning (semver). However, it seems unreasonable to release major versions for changes to the generated output of
generator-omaha
that are not backwards compatible with the generated output of previous versions. In general, this project will release major versions when the generator API is not backwards compatible or when the generated outputs undergo substantial changes. In the case of the latter, a major version increment would serve more as a signifier of significant change (not necessarily changes that are not backwards compatible). I am perhaps making this more complicated than necessary; however, I want to avoid superficial "churn" while still maintaining a standardized process for development and enhancement.