如何使用UglifyJS来缩小文件夹中的多个Javascript文件?
您好我正在使用uglifyJs来缩小我的JavaScript文件,它一次处理好一个文件,我所说的是把所有存在于一个名为JS的文件夹中的JavaScript文件变成一个名为JSM的文件夹,以便清除我有我的JS文件夹中的2个文件名为test1.js和test2.js,我想对该文件夹运行uglify,并生成JSM文件夹内的test1.min.js和test2.min.js,所以有办法做这个? 一个命令如:
uglifyjs -c -m JS/*.js JSM/*.min.js
或者任何可以帮助我的想法。
谢谢。
我知道这似乎是一个巨大的步骤,但我真的会推荐使用咕噜声 。 一旦你掌握了它,这真的很简单。
这是一个速成课程:
- 安装NodeJS
-
安装Grunt CLI(只需在控制台/terminal中input):
npm install -g grunt-cli
-
在你的项目的根目录下创build一个简单的
package.json
文件:{ “name”:“my-project-name”, “版本”:“1.0.0”, “devDependencies”:{ “咕噜”:“〜0.4.2”, “grunt-contrib-uglify”:“〜0.2.4”, “grunt-contrib-watch”:“〜0.5.3” } }
-
一旦你有了,只需键入:
npm install
到控制台(在你的项目的根目录)。 这将安装必要的grunt插件/依赖(从上面的包文件)。 -
现在在你的项目的根目录下创build一个简单的
gruntfile.js
(这是你项目的一种configuration):module.exports = function(grunt){ grunt.initConfig({
// define source files and their destinations uglify: { files: { src: 'js/*.js', // source files mask dest: 'jsm/', // destination folder expand: true, // allow dynamic building flatten: true, // remove all unnecessary nesting ext: '.min.js' // replace .js to .min.js } }, watch: { js: { files: 'js/*.js', tasks: [ 'uglify' ] }, } }); // load plugins grunt.loadNpmTasks('grunt-contrib-watch'); grunt.loadNpmTasks('grunt-contrib-uglify'); // register at least this one task grunt.registerTask('default', [ 'uglify' ]);
};
-
一旦完成,你只需要build立它。 在控制台中input:
咕噜
或者 – 更好 – 如果你input下面的命令执行 – grunt会监视你的源文件的变化,如果你改变它们中的任何一个,它会自动生成它们:
grunt watch --force
然后你可以添加更多的插件,比如:css缩小,css预处理器(less,sass,stylus),jshint等
如果你在Linux / Mac上并且可以访问bash,可以在多个JS文件上使用uglifyjs,如下所示:
rm *.min.js; for f in *.js; do short=${f%.js}; uglifyjs $f > $short.min.js; done
除了上面的答案,我现在有这个在我的.bashrc文件中设置:
alias minify='rm *.min.js; for f in *.js; do short=${f%.js}; uglifyjs $f > $short.min.js; done'
只有npm的方式:
-
跑:
npm install uglifyjs-folder --save-dev
-
然后添加到你的
package.json
像这样:"uglifyjs": "uglifyjs-folder js -eo jsm"
-
然后运行:
npm run uglifyjs
请注意,如果您需要生成与源文件( js
)相同的文件夹,请执行以下操作:
-
跑:
npm install del-cli uglifyjs-folder --save-dev
-
然后添加到你的
package.json
像这样:"uglifyjs": "del js/*.min.js; uglifyjs-folder js -eo js"
-
然后运行:
npm run uglifyjs
你可以在gruntfile.js中使用这个configuration:
uglify: { all: { files: [{ expand: true, cwd: '<path to js folder>', src: ['**/*.js', '!*.min.js'], dest: '<path to js folder>', ext: '.js' }] } }
在每一行开始处创build一个bat文件
start uglifyjs app\main.js -mt sort -c -e -o app\main.ug.js start uglifyjs app\lib.js -mt sort -c -e -r myfunctionname -o app\lib.ug.js start uglifyjs app\controllers\bbbCtrl.js -mt sort -c -o app\controllers\bbbCtrl.ug.js start uglifyjs app\controllers\aaaCtrl.js -mt sort -c -e -o app\controllers\aaaCtrl.ug.js