AngularJS salsa for web/mobile apps and browser extensions.

AngularJS salsa

Mixes a tasteful AngularJS salsa for web/mobile apps and browser extensions using JS/Coffee, Jade/HTML5, Node.js, Express and MongoDB.


Salsa type:

Available spices:

Inspired by AngularJS generator, ngBoilerplate, and MEAN stack generator. Served by Yeoman.

Install yeoman and generator-salsa:

npm install -g yo generator-salsa

Make a new directory, and cd into it:

mkdir my-new-project && cd $_

Run yo salsa, optionally passing any options, and/or an app name:

yo salsa [options] [app-name]
--spa     Generate a single page Angular application.
--mean    Generate a browser/server Mongo+Angular+Express+Node application.
--chrome  Generate a Google Chrome Angular extension.
--coffee  Compile CoffeeScript.
--coffee2 Compile CoffeeScript 2 (beta).
--es3     Use ECMA Script 3 (legacy).
--es5shim Add shim to emulate ECMA Script 5 methods on ES3.
          May be combined with --coffee, or --coffee2.
--es5     Use ECMA Script 5 (IE9+, FF4+, Sf5.1+, Ch7+, Op12+).
--es6     Use ECMA Script 6 (upcoming).
--es6to5  Compile ES6 code to ES5 using Traceur (experimental).
--jade    Compile Jade to HTML.
--html    Use HTML.
          Concatenate scripts with Browserify (--no-concat to disable).
          Concatenate scripts with Grunt concat task.
          Prepare scripts for safe minification with ngmin.
          Bump versions and generate changelog with Grunt release task.
          Use UI Router to handle client-side routing.
          Create demo application files (`yo salsa:demo`).
--quiet   Do not prompt for options, use passed ones and defaults.

Default options:

--spa --coffee --jade --browserify --ui-router --minsafe --release

Welcome to the project. Choose a way that suits you. You'll need a GitHub account.

  • Search existing issues to avoid duplicities.
  • Submit an issue with label bug, or enhancement.
  • For a bug, include any relevant information, e.g. task output, installed OS/Node.js/Grunt/generator-salsa versions, and steps to reproduce.
  • Fork the repository (help) and checkout new branch with <type>- prefix in name, where type may be feature, fix, docs, or chore.
  • Use the popular JavaScript style convention and winning JavaScript style with exception of 100 characters per line. In short, use 2 spaces indent, camelCase names, trailing comma, single quotes, semicolons, sparse spacing, and no trailing whitespace.
  • For bugfix, write a test that exposes the bug and fails without the fix. Submit the test alongside.
  • For a new feature, add tests that cover the feature.
  • Lint and test your code with grunt, or grunt watch to watch sources and run tests on any change.
  • Use commit messages that follow Karma/Angular commit message convention (docs). In short, use <type>(<scope>): <subject> header in imperative present tense, message body describing motivation/differences, and footer referencing related issues and breaking changes.
  • Create a pull request to the master branch, or to any pull request branches (help).
  • Base:

    • Add the yeoman generator option parser and .salsarc
    • Add bump/npm/changelog/release tasks
    • Add reliable concurrent(watch-notest, karma:watch)
    • Add importer/concat+minify+sourcemaps+filerev+userev
  • Demo application and tests:

    • Add demo application
    • Add Karma tests
    • Add Protractor tests
    • Add best practices and componentization guide
  • Spices:

    • Add Browserify support and demo
    • Add UI-Router support and demo
    • Add UI-Bootstrap support and demo
    • Add CoffeeScript2 beta support
  • Subgenerators:

    • Add subgenerator for feature, including route, controller and template
    • Add subgenerator for feature/common filter
    • Add subgenerator for feature/common service
    • Add subgenerator for feature/common directive
  • Google Chrome extensions:

    • Add Google Chrome extension support
    • Extend demo application to Google Chrome extension
  • ECMAScript 5/6 targets:

    • Add ES5-shim support
    • Add ES5 support
    • Add ES6 Harmony support
    • Add Traceur (ES6 draft -> ES5 compiler) support

  • generator: add .gitignore to generated project (fe7c8c44)
  • grunt: reload express on app.js change with grunt-express bug workaround (cdee23de)
  • devdeps: update grunt-express to ~1.2.1 (b634b67a)

  • app: add bootstrap-css~2.3.2 (48263dee)

  • generator: create basic MEAN stack generator (1290e5d7)

Copyright 2013 Salsita Software. Licensed under the MIT License.