我可以按正确的顺序连接文件,可以在输出文件的顶部和底部添加(function(){'use strict';,但不知道如何从单个文件中删除}());(function(){'use strict';串联之前的文件。

我通读了文档,并尝试使用custom process example,我知道我需要对该行}());进行一些更改,但是不幸的是,我不了解该行或如何更改它。

最后,我不知道进行更改是否重要。当我合并并缩小代码时,请保持不变,不要添加横幅和页脚,一切正常。用一个单独的使用限制代替有什么好处?

从我的Gruntfile

concat: {
    options: {
        banner: "(function(){'use strict';\n",
        footer: '}());',
        process: function(src, filepath) {
            return '// Source: ' + filepath + '\n' +
                src.replace(/(^|\n)[ \t]*('use strict'|"use strict");?\s*/g, '$1');
        }
    },
    nonMin: {
        src: ['src/angular-gmap-gplace.js', 'src/modules/*.js'],
        dest: 'dist/angular-gmap-gplace.js'
    },
    min: {
        src: ['src/**/*.js'],
        dest: '.tmp/concat.js'
    }
}

最佳答案

用一个单独的使用限制代替有什么好处?


不。只有弊端。

在每个文件中使用IIFE意味着每个文件都有其自己的作用域,并且,除非您有意创建了全局文件,否则不会干扰其他文件。

如果将它们合并为一个IIFE,则不再是正确的,它们彼此共享范围。您可能会不小心覆盖一个文件使用的变量,而该变量在另一个文件中的名称相同。

关于javascript - 如何删除(function(){'use strict';} and());与grunt-contrib-concat串联时,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39375505/

10-12 00:04