generator-salsa

AngularJS salsa for web/mobile apps and browser extensions.

Usage no npm install needed!

<script type="module">
  import generatorSalsa from 'https://cdn.skypack.dev/generator-salsa';
</script>

README

AngularJS salsa

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

npm build dependencies dev-dependencies

Features (coming soon)

Salsa type:

Available spices:

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

Getting Started

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]

Usage

Options (coming soon)

--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.

--browserify
          Concatenate scripts with Browserify (--no-concat to disable).
--(no-)concat
          Concatenate scripts with Grunt concat task.
--(no-)minsafe
          Prepare scripts for safe minification with ngmin.
--(no-)release
          Bump versions and generate changelog with Grunt release task.

--(no-)ui-router
          Use UI Router to handle client-side routing.

--(no-)demo
          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

Contributing

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

Submit a bug, or feature request

  • 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.

Submit a pull request

  • 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 generator-salsa master branch (help).

Roadmap

  • Base:

    • Add the yeoman generator option parser and .salsarc
    • Add bump/npm/changelog/release tasks
    • Add reliable concurrent(watch-notest, karma:watch)
    • Add 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

Changelog

v0.0.1 (2013-11-21)

Features

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

License

Copyright 2013 Salsita Software. Licensed under the MIT License.