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

};
相關文章
相關標籤/搜索