• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

SC5/gulp-bobrsass-boilerplate: Gulp BoBrSASS Boilerplate

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称(OpenSource Name):

SC5/gulp-bobrsass-boilerplate

开源软件地址(OpenSource Url):

https://github.com/SC5/gulp-bobrsass-boilerplate

开源编程语言(OpenSource Language):

JavaScript 73.9%

开源软件介绍(OpenSource Introduction):

Gulp BoBrSASS Boilerplate

Build Status

BoBrSASS is a modifiable boilerplate combining some of our common tools and practices:

  • Gulp for fast builds
  • Browserify for bundling CommonJS modules
  • Sass & Compass stylesheets
  • Runs in background (watching changes), supports live reload
  • Supports source maps for both JavaScript and Sass
  • Spaces instead of tabs
  • Headless protractor acceptance tests

Installation

Prerequisites

The latest version of BoBrSASS should work with recent versions of Ruby, Sass, Compass and Git. Please check the correct versions, maintained in our Travis configuration. If you insist on using an older version of dependencies, earlier versions of the boilerplate may work.

For system level deps, install Node.js 0.10 or later and Ruby 2.1 or later and Git. When using Git on Windows, remember to enable usage from command prompt.

Clone the project and trigger installation of the project dependencies by

> git clone https://github.com/SC5/gulp-bobrsass-boilerplate.git
> npm install --debug
> npm run deps

If deps fails on Ruby gem dependencies, try updating rubygems as follows:

> gem update --system

Building

BoBrSASS uses Gulp internally, but you can use npm scripts to trigger them. Build, test etc. tasks utilise npm development dependencies, so one should set 'NODE_ENV' to something else than 'production' or install the npm dependencies with a '--debug' flag. All the development dependencies are moved into devDependencies to avoid slow installs of the actual released software.

Debug and Release builds

> npm install --debug       # to force development dependencies
> npm run build             # to trigger bower install, build and tests
> npm run build -- --debug  # to trigger bower install, debug build and tests

After this you should have a working, tested build in 'dist' directory.

Watching for changes

To trigger debug build or other features, run the build with a combination of the following flags:

> npm run watch -- --debug  # to disable optimisations, turn on debugging
> npm run watch -- --test   # to turn on tests when building
> npm run watch -- --nolint # to disable linting

The above extra flags '-- [--]' syntax syntax only works for npm 2.0 or later. If you have an earlier version of dislike the syntax, trigger the same gulp tasks with your local Gulp installation:

> npm install -g gulp       # to install Gulp CLI locally
> gulp install
> gulp build --debug
> gulp watch --debug --test --nolint

To update your package version, you eventually want to do one of the following:

> gulp bump --patch
> gulp bump --minor
> gulp bump --major
> gulp bump # defaults to minor

Running

Running the Stub Server

The boilerplate includes a minimal stub Express server in 'server/' directory. Its primary purpose is testing the frontend as part of the build, but nothing blocks you from expanding it into a full-blown server.

> npm start                 # to start the server through npm
> node server               # to start the server

The server should respond your http requests on local port 8080.

Deploying to AWS S3

The resulting web application (contents of dist) can be deployed to an Amazon S3 bucket. You'll need to have

1. an S3 bucket set up to AWS.
2. the bucket configured in package.json (config.bucket)
3. the region for the bucket can be configured in package.json (config.bucketRegion)
4. AWS credentials set up as required by aws-sdk (sample .aws/credentials file below)

[default]
aws_access_key_id=Access key from AWS console
aws_secret_access_key=Secret key from AWS console

To create the bucket, run:

> npm run createBucket

To deploy to S3, run:

> npm run build         # To build the application (to dist/)
> npm run deploy        # To deploy to Amazon S3

Running with Docker

Boilerplate also comes with Docker support. To have a minimal Docker image and speed up the containerization, the whole app is built before the packaging, and only the Node.js production dependencies get packaged. To build and run the container, run:

> npm run build             # to build the application in production mode
> docker build -t bobrsass . # to build the Docker image with name "docker"
> docker run -d -P bobrsass # to star the app

To access the service, check the dynamically allocated port (for example: 0.0.0.0:49164->8080/tcp) and use it in browser URL

> docker ps                 # --> http://localhost:49164/

Localhost works in Linux environment, but if you are using boot2docker, you need to use VM IP instead. Check the IP and replace localhost with it:

> boot2docker ip
# --> http://192.168.59.103:49164/

Live Reloading the Changes

Live reloading is enabled when running gulp watch in another window. Just change any of your JavaScript or Sass files to trigger reload. The reload monitors 'dist' directory and pushes the changes as needed.

Extending & Hacking

Project Layout

App

src/             The client-side source code
src/index.html   The HTML entry point, stub page
src/app          Application source code
src/app/main.js  The app JS entry point
src/components   The 3rd party JS dependencies
src/css          The CSS templates

Build System

gulpfile.js         The Gulp build configuration
bower.json          The Bower components
.bowerrc            The Bower directory overrides
package.json        The build level dependencies

Build Results

dist/               The build results (debug and release builds)

Using BoBrSASS as an Upstream

Upgrading the boilerplate in your project may be tedious work. Once BoBrSASS directory structure becomes stable (it might be already, but no guarantees!), you can use it directly as an upstream (here with a name 'bobrsass').

> git remote add -f bobrsass [email protected]:SC5/gulp-bobrsass-boilerplate.git

Now synchronizing with BoBrSASS becomes easier:

> git pull bobrsass master

It is possible to use BoBrSASS as a subtree, too:

> git subtree add --prefix client --squash [email protected]:SC5/gulp-bobrsass-boilerplate.git master --squash
> git remote add -f bobrsass [email protected]:SC5/gulp-bobrsass-boilerplate.git
> git fetch bobrsass master

Note that you need to use a recent version of git that supports subtrees.

The example pulls BoBrSASS master branch into 'client' subdirectory. The key here is to use '--prefix client' to keep the boilerplate in its own subdirectory. Later on, sync by:

> git subtree pull --prefix client bobrsass master

Testing

Run tests with PhantomJS:

> gulp test

Or in debug mode with chromedriver in a browser:

> gulp test --debug

TODO

Plase see project GitHub issue tracker.

Release History

  • 2014/02/12 - v0.1.0 - Initial commit (partially working stub)
  • 2014/02/24 - v0.1.1 - Fix the build errors, update README
  • 2014/05/08 - v0.2.0 - Update dependecies, add linting and plugin loader, update README
  • 2014/05/09 - v0.3.0 - Add Protractor test framework, update README
  • 2014/05/14 - v0.3.1 - Better linting
  • 2014/08/01 - v0.4.0 - Clear separation of dev. and product dependencies
  • 2014/10/20 - v0.5.0 - Migrate to Compass 1.0.1, sourcemaps, better linting, updated deps

License

Copyright (c) 2014 SC5, licensed for users and contributors under MIT license. https://github.com/sc5/grunt-bobrsass-boilerplate/blob/master/LICENSE-MIT

Bitdeli Badge




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
hparra/gulp-spawn: CLI program piping plugin for gulp.发布时间:2022-06-21
下一篇:
buddyspike/gulp-jspm-build: Gulp plugin for jspm.发布时间:2022-06-21
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap