nodejs/bower/grunt/mocha/express/postgres搭建開發環境
0. nodejs 流行的異步IO解決方案,連接[http://nodejs.org/](http://nodejs.org)
1. bower 前段框架管理工具
2. grunt 自動化工具[gruntjs.com](gruntjs.com)
3. mocha 自動化單元測試[http://mochajs.org/](http://mochajs.org)
4. express nodejs界最有名氣的開源框架[http://expressjs.com/](http://expressjs.com/)
5. postgresql 開源數據中的佼佼者[http://www.postgresql.org/](http://www.postgresql.org/)
nodejs+express
負責與數據庫交互,處理用戶請求
bower
負責管理前段文件,例如 jquery, bootstrap等等, bower自動處理類庫之間兼容問題,以及依賴問題,例如bootstrap依賴jquery, bower install bootstrap --save會自動安裝合適版本的jquery,或檢查已經安裝的類庫是否兼容
grunt
自動將前段css, JS合併,打包壓縮,生成 lib.min.js phone.min.js, lib.min.css, phone.min.css等
自動化測試
自動化npm install 等等
mocha
一個穩健的項目少不了單元測試,mocha是一個不錯的單元測試工具,支持異步測試,延時測試,生成測試報告等等
postgres
postgres 強大之處,支持數據庫編程,您能夠將負責的業務邏輯寫成函數,使用node調用數據庫函數便可
Gruntfile.js
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
cssmin: { //壓縮css
target: {
files: [
{
src: "public/lib/*.css",
dest: "public/dist/lib.min.css"
},
{
src: "public/stylesheets/*.css",
dest: "public/dist/<%=pkg.name%>.min.css"
}
]
}
},
bower_concat: { //合併 bower 安裝的前段文件
all: {
dest: "public/lib/<%= pkg.name%>.js",
cssDest: "public/lib/<%= pkg.name%>.css"
}
},
uglify: { //壓縮js文件
options: {
banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
},
my_target: {
mangle: false,
files: [
{
src: "public/src/*.js",
dest: "public/dist/<%=pkg.name%>.min.js"
},
{
src: "public/lib/*.js",
dest: "public/dist/lib.min.js"
}
]
}
}
});
grunt.loadNpmTasks('grunt-contrib-cssmin');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-bower-concat');
// Default task(s).
grunt.registerTask('default', ['cssmin','bower_concat', 'uglify']);
};