标签: grunt-contrib-uglify

如何通过grunt-contrib-uglify按顺序缩小js文件?

我有一个如下目录:

/folder/b.js
/folder/jQuery.js
/folder/a.js
/folder/sub/c.js

我想按顺序在一个js文件缩小所有这些js文件:

jQuery.js - > a.js - > b.js - > c.js

问:
1.如何通过grunt-contrib-uglify来实现?(实际上,有很多文件,单独指定所有源文件路径是不切实际的)

2.btw,如何在调试时获取未经文明化的文件,并在发布时获得缩小的单个文件,而无需更改html中的脚本标记(以及如何编写脚本标记)?

javascript node.js uglifyjs gruntjs grunt-contrib-uglify

36
推荐指数
4
解决办法
3万
查看次数

Grunt concat + uglify与sourcemaps

我使用concat将JS文件合并到一个文件中,并使用uglify来最小化JavaScript.如何创建使用源JS文件的sourcemaps文件?

我目前的gruntfile:

concat: {
    options: {
        // define a string to put between each file in the concatenated output
        separator: ';'
    },
    dist: {
        // the files to concatenate
        src: ['<%= config.src %>/js/**/*.js'],
        // the location of the resulting JS file
         dest: '<%= config.dist %>/js/main.js'
    }
},

uglify: {
    dist: {
        files: {
            '<%= config.dist %>/js/main.min.js': ['<%= concat.dist.dest %>']
        }
    }
},
Run Code Online (Sandbox Code Playgroud)

gruntjs source-maps grunt-contrib-concat grunt-contrib-uglify

32
推荐指数
1
解决办法
2万
查看次数

grunt-contrib-uglify不会解析"let"关键字吗?

我收到一个错误,

'意外的令牌:名字(bazz)'

当我的咕噜声任务正在运行uglify时.我在那一行上唯一注意到的是我使用'let'关键字而不是'var',所以我不确定为什么会抛出这个错误.

我有一个if else语句,每个都有let varName,即:

function foo (bar) {
    if (condition) {
        let bazz = fn();
        //doSomething with bazz
        _.assign(bar, bazz);
    } else {
        let bazz = fn2();
        //doSomething different with bazz
        _.assign(bar, bazz);
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以通过var bazz = {};在if else子句之前使用它来改变它,但我想避免这种情况,因为我必须将bazz分配给fn()和fn2().

想知道是否有其他人遇到过这个以及他们做了什么来修复它.提前致谢!

javascript uglifyjs grunt-contrib-uglify

23
推荐指数
1
解决办法
8126
查看次数

在gruntjs minify/uglify之后更改html中的链接或脚本文件名

我正在使用标准minify/uglify用于css/js文件,并将多个文件组合到main.min.css或app.min.js ...但是我的.html文件需要修改为指向这些新文件名<link>或者<script>

有没有办法实现自动化?或者如何自动修改.html文件以重命名那里的文件名gruntjs

html javascript node.js gruntjs grunt-contrib-uglify

22
推荐指数
3
解决办法
9365
查看次数

Gruntfile.js - 找不到任务"默认"

这是我的Gruntfile.js

module.exports = function(grunt) {
    grunt.initConfig({
        pkg: grunt.file.readJSON("package.json"),

        uglify: {
          options: {
            mangle: true
          }
          build: {
            src: "js/*.js",
            dest: "js/min/script.js"
          }
        }

    });

    grunt.loadNpmTasks("grunt-contrib-uglify");

    grunt.registerTask('default', [uglify]);

};
Run Code Online (Sandbox Code Playgroud)

这是我的package.json - 我已经运行npm install了,我将在我的Gruntfile中使用所有插件,grunt-contrib-uglify就是其中之一.

{
  "name": "bootbuckle",
  "version": "0.1.0",
  "engines": {
    "node": ">= 0.10.0"
  },
  "devDependencies": {
    "grunt": "~0.4.2",
    "grunt-contrib-watch": "~0.5.3",
    "grunt-contrib-sass": "~0.6.0",
    "grunt-csscomb": "~2.0.1",
    "grunt-contrib-htmlmin": "~0.1.3",
    "grunt-contrib-imagemin": "~0.4.1",
    "grunt-contrib-uglify": "~0.2.7"
  }
}
Run Code Online (Sandbox Code Playgroud)

当我只是grunt在终端中运行时 - 这是错误

  build: {
  ^^^^^
Loading "Gruntfile.js" tasks...ERROR
>> SyntaxError: Unexpected identifier
Warning: Task …
Run Code Online (Sandbox Code Playgroud)

javascript gruntjs grunt-contrib-uglify

22
推荐指数
2
解决办法
4万
查看次数

如何将uglify-es集成到grunt中?

我正在使用gruntjs(使用uglifyjs)来构建我的Angularjs应用程序.但是uglifyjs仍然不支持es6,所以在相应的GitHub问题中我发现了这一点.所以现在有uglify-es,它似乎支持es6.但我不确定如何将它与grunt集成.现在我有模块"grunt-contrib-uglify",它有一个依赖uglifyjs,现在使用.我怎样才能使用咕噜声uglify-es呢?

javascript uglifyjs gruntjs ecmascript-6 grunt-contrib-uglify

17
推荐指数
2
解决办法
4335
查看次数

如何在保持文件夹结构的同时grunt-uglify多个脚本文件

我没有找到一个好方法来grunt-uglify多个脚本文件分布在多个文件夹,同时保持文件夹结构包括uglified文件完好无损.我想要这样做的唯一原因是能够提高我正在处理的网页的"遗留"部分的性能.

我已经找到了解决这个问题的方法,我不想做,因为它需要花费很多时间,就像在这个答案中一样(它们分别指定每个src和dest对): 如何配置grunt. js分别缩小文件

我想要实现的一个例子:

**src dir (no uglify applied):**
src
 |- app1
    |- randomFile.js
    |- scripts
       |- file1.js
       |- file2.js
    |- libs
       |- file3.js
       |- file4.js
 |- app2
   |- scripts
       |- file1.js
       |- file2.js

**destination dir (uglify applied, same file name):**
dist
 |- app1
    |- randomFile.js
    |- scripts
       |- file1.js
       |- file2.js
    |- libs
       |- file3.js
       |- file4.js
 |- app2
    |- scripts
       |- file1.js
       |- file2.js
Run Code Online (Sandbox Code Playgroud)

顺便说一句,如果可能的话,想对CSS文件做同样的事情.

有谁知道这是否可能?

javascript gruntjs grunt-contrib-uglify

16
推荐指数
3
解决办法
2万
查看次数

带有源映射的调试器中的Mangled名称

使用grunt-contrib-uglify生成的源地图时,Chrome/Safari中的调试器不会显示未编码的变量名称.源代码显示和调试正确.我已经验证源映射包含变量名称.这是uglify中的错误吗?

原始来源:

// two

function two()
{
    var test = "test";

    console.log("this is a " + test);
}
Run Code Online (Sandbox Code Playgroud)

生成的来源:

function two(){var a="test";console.log("this is a "+a)}
//# sourceMappingURL=all.min.js.map
Run Code Online (Sandbox Code Playgroud)

来源地图:

{
    "version": 3,
    "file": "all.min.js",
    "sources": ["../src/two.js"],
    "names": ["two","test","console","log"],
    "mappings":";;AAEA,QAASA,OAEL,GAAIC,GAAO,MAEXC,SAAQC,IAAI,aAAeF",
    "sourceRoot":"../"
}
Run Code Online (Sandbox Code Playgroud)

javascript debugging google-chrome source-maps grunt-contrib-uglify

15
推荐指数
1
解决办法
1549
查看次数

grunt uglify js无法理解一些es6功能?

我在我的项目中使用了grunt-uglify,我正在使用es6.对于某些es6功能,例如胖箭头功能,它会抛出一个错误.我认为uglify不懂语法.所以我有办法解决这个问题.我的意思是我可以使用任何东西来使uglify理解所有的es6语法吗?

javascript gruntjs ecmascript-6 grunt-contrib-uglify

15
推荐指数
2
解决办法
9315
查看次数

如何使用grunt-contrib-uglify来gzip js文件呢?

我正在执行一项艰巨的任务:

uglify: {
    options: {
        report: 'gzip'
    },
    all: {
        expand: true,
        flatten: true,
        cwd: 'js/',
        src: ['*.js', '!*.min.js'],
        dest: 'js/min',
        ext: '.min.js'
    }

}
Run Code Online (Sandbox Code Playgroud)

在运行报告选项时,文件将压缩到一个文件中

options: {
    report: 'gzip'
}
Run Code Online (Sandbox Code Playgroud)

我看到gzip压缩时文件会明显变小,但输出文件不是gzip压缩的,它们是"缩小"报告的大小.

所以问题是,我如何配置uglify来gzip文件.或者这是一项不同任务的任务?

javascript gruntjs grunt-contrib-uglify

8
推荐指数
1
解决办法
8635
查看次数