nodejs+grunt+mocha+express+postgres搭建开发环境

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']);

};

你可能感兴趣的:(nodejs,PostgreSQL,grunt,bower,Mocha)