高效开发Hybrid APP(一):环境搭建 NodeJS + Grunt + tomd
2016-11-10 10:38
309 查看
1.安装 nodejs
2.安装 grunt -> npm install -g grunt-cli
3.配置工作环境 npm init
./package.json{ "name": "app", "author": "By.Runic - Email: demo2013@vip.qq.com", "version": "1.0.0", "description": "Runic 2016/11/04", "devDependencies": { "grunt": "^0.4.5", "grunt-contrib-jshint": "~0.10.0", "grunt-contrib-concat": "^0.5.1", "grunt-contrib-uglify": "^0.9.2", "grunt-css": ">0.0.0" } }
3. cmd 进入项目 node 配置依赖库:
npm install grunt --save-dev
4. Grunt 配置
./Gruntfile.jsmodule.exports = function(grunt) { 'use strict'; grunt.initConfig({ // 从package.json 文件读入项目配置信息,并存入pkg 属性内。这样就可以让我们访问到package.json文件中列出的属性了 pkg: grunt.file.readJSON('package.json'), concat: { dist: { // 将要被合并的 JS 文件 src: [ './app/app.js', './app/js/*.js' ], // 合并后的JS文件的存放位置 dest: './js/<%= pkg.name %>.js' }, css: { // 将要被合并的 CSS 文件 src: [ './app/css/*.css' ], // 合并后的 CSS 文件的存放位置 dest: './css/<%= pkg.name %>.css' } }, uglify: { dist:{ files: { './js/<%= pkg.name %>.min.js': [ '<%= concat.dist.dest %>' ] } } }, cssmin: { build: { // 将要被合并的 CSS 文件 src: [ '<%= concat.css.dest %>' ], // 合并后的 CSS 文件的存放位置 dest: './css/<%= pkg.name %>.min.css' } } }); grunt.loadNpmTasks("grunt-contrib-concat"); // 合并 JS grunt.loadNpmTasks("grunt-contrib-uglify"); // 压缩 JS grunt.loadNpmTasks('grunt-css'); // 压缩 CSS grunt.registerTask("default", ["concat", "uglify", "cssmin"]); };
6. 合并js 、 执行 grunt
7.添加预编译 模版
npm install -g tmodjs
github项目地址: https://github.com/aui/tmodjs
8.让 TmodJS 作为 Grunt 的插件使用
npm install grunt-tmod --save-dev
github项目地址:https://github.com/Jsonzhang/grunt-tmod
9.最终 package.json 文件
{ "name": "app", "author": "By.Runic - Email: demo2013@vip.qq.com", "version": "1.0.0", "description": "Runic 2016/11/04", "devDependencies": { "tmodjs": "1.0.4", "grunt": "^0.4.5", "grunt-contrib-concat": "^0.5.1", "grunt-contrib-jshint": "~0.10.0", "grunt-contrib-uglify": "^0.9.2", "grunt-css": ">0.0.0", "grunt-tmod": "^0.2.10" } }
10.最终 Gruntfile.js
module.exports = function(grunt) { 'use strict'; grunt.initConfig({ // 从package.json 文件读入项目配置信息,并存入pkg 属性内。这样就可以让我们访问到package.json文件中列出的属性了 pkg: grunt.file.readJSON('package.json'), concat: { dist: { // 将要被合并的 JS 文件 src: [ './app/app.js', './app/js/*.js' ], // 合并后的JS文件的存放位置 dest: './js/<%= pkg.name %>.js' }, css: { // 将要被合并的 CSS 文件 src: [ './app/css/*.css' ], // 合并后的 CSS 文件的存放位置 dest: './css/<%= pkg.name %>.css' } }, uglify: { dist:{ files: { './js/<%= pkg.name %>.min.js': [ '<%= concat.dist.dest %>' ] } } }, cssmin: { build: { // 将要被合并的 CSS 文件 src: [ '<%= concat.css.dest %>' ], // 合并后的 CSS 文件的存放位置 dest: './css/<%= pkg.name %>.min.css' } }, tmod: { template: { // 模版文件 src: './tpl/*.html', // 输出路径。 dest: './js/template.js', options: { // 指定模板的根目录,以便缩短编译后的模板id访问路径。 base: './tpl', // 模板使用的编码(暂时只支持 utf-8) charset: "utf-8", // 定义模板采用哪种语法。可选:simple、native syntax: "simple", // 自定义辅助方法路径 helpers: "./app/artTemplate.helper.js", 9926 // 是否过滤 XSS。如果后台给出的数据已经进行了 XSS 过滤,就可以关闭模板的过滤以提升模板渲染效率 escape: true, // 是否压缩 HTML 多余空白字符 compress: true, // 输出的模块类型,可选:default、cmd、amd、commonjs type: "default", // 设置输出的运行时名称 runtime: "template.min.js", // 是否合并模板(仅针对于 default 类型的模块) combo: true, // 是否输出为压缩的格式 minify: true, // 是否开启编译缓存 cache: false, // 是否打印日志 verbose: true } } } }); grunt.loadNpmTasks("grunt-contrib-concat"); // 合并 JS grunt.loadNpmTasks("grunt-contrib-uglify"); // 压缩 JS grunt.loadNpmTasks('grunt-css'); // 压缩 CSS grunt.loadNpmTasks('grunt-tmod'); // 预编译 模版 grunt.registerTask("default", ["concat", "uglify", "cssmin", "tmod"]); };
摘自个人 github 博客
相关文章推荐
- 在windows环境下基于sublime text3的node.js开发环境搭建
- Node.js 开发环境搭建及设置
- Windows8下搭建Node.js开发环境教程
- Windows8下搭建Node.js开发环境教程
- 快速搭建 Node.js 开发环境
- Node.js【2】开发环境搭建(Windows、Linux&Mac)
- 在windows环境下基于sublime text3的node.js开发环境搭建
- 快速搭建 Node.js 开发环境以及加速 npm
- 使用Eclipse搭建Node.js开发环境
- node.js 开发环境搭建
- Win8 搭建 Node.js 开发环境
- 搭建Node.js开发IDE环境WebStrom5
- 利用node.js进行phonegap开发环境搭建
- 快速搭建 Node.js 开发环境以及加速 npm
- 全方位的NodeJS+mongodb开发环境搭建
- 搭建Node.js开发IDE环境WebStrom5 多图
- nodejs+express开发环境快速搭建
- Windows下Node.js开发环境搭建
- 对于node.js开发指南中博客案例的修改实现(一)--开发环境搭建
- 快速搭建 Node.js 开发环境以及加速 npm