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']);
};
来源:oschina
链接:https://my.oschina.net/u/148994/blog/370295