使用Grunt合并及压缩Javascript代码

1. Grunt安装

cnpm install -g grunt-cli 
cnpm install grunt --save-dev

2. 安装合并和压缩两个插件

cnpm install grunt-contrib-concat --save-dev
cnpm install grunt-contrib-uglify --save-dev

3. 根目录创建Gruntfile.js文件

文件内容如下:

module.exports = function(grunt){
    // 1. 初始化插件配置
    grunt.initConfig({
        //主要编码处
        concat: {
            options: { //可选项配置
                separator: ';'   //使用;连接合并
            },
            build: { //此名称任意
                src:  [
                        'src/com_0_adjustArray.js',
                        'src/com_1_globalVars.js',
                        'src/com_2_1_publicFunsSecret.js',
                        'src/com_2_2_publicFuns.js',
                        'src/com_3_subFuns.js',
                        'src/com_4_execFuns.js'
                    ], 
                dest: "dist/all.js" //输出的js文件
            }
        }
    });
    // 2. 加载插件任务
    grunt.loadNpmTasks('grunt-contrib-concat');
    // 3. 注册构建任务
    grunt.registerTask('default', ['concat']);
};

4. 目录结构

file

4. 执行

cmd中切换到目标目录后,直接运行grunt命令就可以了。
运行成功后,在dist文件夹下回出现合并的all.js文件及压缩后的all.min.js文件了。

5. 错误解决

运行grunt命令式弹出如下错误:

basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")

解决方案很简答,将node_modules文件夹中的依赖全部删除,将package.json里面无关的依赖也删除,重新运行cnpm install命令安装依赖即可。
估计是之前在这个文件夹下测试了太多的程序,导致逻辑混乱吧。