node package manager

generator-ninthlink

Ninthlink Web app generator Build Status Join the chat at https://gitter.im/jeffreysbrother/generator-ninthlink

Yeoman generator that scaffolds out a front-end web app using gulp for the build process. A modified version of this generator.

Features

Please see the gulpfile for up-to-date information on what we support.

  • Bootstrap, Sass, and HTML5 Boilerplate (jQuery, Normalize.css, etc.)
  • UnCSS (customized for use with Bootstrap)
  • JS, CSS, and HTML Minification
  • CSS Autoprefixing
  • Built-in preview server with BrowserSync
  • Compile Sass with libsass
  • Lint your scripts
  • Lint Bootstrap HTML with gulp-bootlint
  • Source maps
  • Image optimization
  • Git initialization
  • Choose between Google Tag Manager and Google Analytics
  • Use yargs to customize the target directory of Gulp tasks
  • Wire-up dependencies installed with Bower
  • The gulpfile makes use of ES2015 features by using Babel
  • Many other customizations...

For more information on what this generator can do for you, take a look at the gulp plugins used in our package.json.

libsass

Keep in mind that libsass is feature-wise not fully compatible with Ruby Sass. Check out this curated list of incompatibilities to find out which features are missing.

If your favorite feature is missing and you really need Ruby Sass, you can always switch to gulp-ruby-sass and update the styles task in gulpfile accordingly.

Getting Started

  • Install Node
  • Install other dependencies: npm install --global yo gulp-cli bower
  • Install the generator: npm install --global generator-ninthlink
  • Run yo ninthlink to scaffold your web app
  • Run gulp serve to preview and watch for changes
  • Run gulp serve:test to run the tests in the browser
  • Run gulp to build your web app for production
  • Run gulp serve:dist to preview the production build

Additional Tasks

  • Run gulp bootlint to lint Bootstrap markup. This is currently a standalone task and will only lint the index.html file in the app/ directory. Feel free to customize as necessary.

Specifying a Custom Gulp directory

By default, the generator assumes that all development will take place in app/ ... and that our final product will end up in dist/. However, certain projects might warrant having multiple client directories. In a situation like this, we must pass our Gulp tasks flags that specify the target directory for these processes. Imagine that we clone a project into a new directory called "clients/wholefoods":

git clone <repo URL here> clients/wholefoods

In order to run Gulp in this new directory, we must include additional flags as follows:

--from=clients/wholefoods --appDir=app/adv/1 --distDir=dist/adv/1

or

--appDir=clients/wholefoods/app/adv/1 --distDir=clients/wholefoods/dist/adv/1

This methodology will allow us to import multiple pre-designed starter templates for a number of different clients within one repository.

Docs

Options

  • --skip-welcome-message Skips Yeoman's greeting before displaying options.
  • --skip-install-message Skips the the message displayed after scaffolding has finished and before the dependencies are being installed.
  • --skip-install Skips the automatic execution of bower and npm after scaffolding has finished.
  • --test-framework=<framework> Either mocha or jasmine. Defaults to mocha.
  • --no-babel Scaffolds without Babel support (this only applies to app/scripts, you can still write ES2015 in the gulpfile)

License

BSD license