Project template for gulp.js
This is a fork of the awesome leonidas/gulp-project-template put together and maintained by Riku Rouvila. This fork only uses different defaults for some technologies and adds some Knockout.js specific structure.
- Jade files to HTML
- Stylus files to CSS
- CoffeeScript files to ES5 Javascript through browserify
- You are able to use
require
in your client-side code
- You are able to use
- Uses BrowserSync to serve your static files to localhost:9001 and to automatically reload your browser when files change.
- Has Knockout.js component system in place
- Hot-swaps modules with browserify-hmr. See the source for usage.
- Install Node.js
git clone git@github.com:tjyrkinen/gulp-knockout-project-template.git <your project name>
cd <your project name>
npm install
npm start
open http://localhost:9001 in your browser
- npm install
- Installs server-side dependencies from npm
- npm start
- Compiles your files, starts watching files for changes, serves static files to port 9001
- npm run build
- Builds everything
- npm run component:create
- Creates a Knockout.js custom component/element ready to be used in layout. Creates the .jade and .coffee parts and adds component registration code.
Minification, uglification and other tasks you're expected to run before deploying your product can be made by running the build command with env variable NODE_ENV set to "production"
NODE_ENV=production npm run build
public - directory should be dedicated only to compiled/copied files from src - directory. It should be possible to delete directory completely and after npm start or npm run build everything should be as they were before the deletion.
All dependencies are meant to be installed with npm.
- JavaScript-files from node_modules can be require()'d in client-side modules.
- Third party CSS files should be imported. Stylus has been configured to use node_modules as one of the base directories so you can import file like this:
@import 'bootstrap/dist/css/bootstrap.css'
- You can either create a new gulp task for copying other assets from directories mentioned above or use an array as a value for assets sources e.g
source: ['./src/assets/**/*.*', 'node_modules/bootstrap/fonts*/*.*']
(notice the asterisk after 'fonts'? It makes gulp copy the whole directory instead of just the files inside of it)
- eslint
- When used as an editor plugin (for example. SublimeLinter + SublimeLinter-eslint), gives you immediate feedback about your code and can find bugs, potential problem areas, poor coding styles and stylistic issues.
I would advice against it. Keeping the version history makes it easier to receive updates from this project.