如何使用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 

或者任何可以帮助我的想法。

谢谢。

我知道这似乎是一个巨大的步骤,但我真的会推荐使用咕噜声 。 一旦你掌握了它,这真的很简单。

这是一个速成课程:

  1. 安装NodeJS
  2. 安装Grunt CLI(只需在控制台/terminal中input):

     npm install -g grunt-cli
    
  3. 在你的项目的根目录下创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”
       }
     }
    
  4. 一旦你有了,只需键入: npm install到控制台(在你的项目的根目录)。 这将安装必要的grunt插件/依赖(从上面的包文件)。

  5. 现在在你的项目的根目录下创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' ]); 

    };

  6. 一旦完成,你只需要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的方式:

  1. 跑:

     npm install uglifyjs-folder --save-dev 
  2. 然后添加到你的package.json像这样:

     "uglifyjs": "uglifyjs-folder js -eo jsm" 
  3. 然后运行:

      npm run uglifyjs 

请注意,如果您需要生成与源文件( js )相同的文件夹,请执行以下操作:

  1. 跑:

     npm install del-cli uglifyjs-folder --save-dev 
  2. 然后添加到你的package.json像这样:

     "uglifyjs": "del js/*.min.js; uglifyjs-folder js -eo js" 
  3. 然后运行:

      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