如何删除 (function(){'use strict'; } and ());当与 grunt-contrib-concat 连接时
How to remove (function(){'use strict'; } and ()); when concatenating with grunt-contrib-concat
我可以按正确的顺序连接我的文件,我可以将 (function(){'use strict';
添加到输出文件的顶部,将 }());
添加到输出文件的底部,但我不知道如何删除 (function(){'use strict';
和 }());
在连接之前来自各个文件。
我通读了文档并尝试使用 custom process example 并且我知道我需要对此行进行一些更改 src.replace(/(^|\n)[ \t]*('use strict'|"use strict");?\s*/g, '');
但不幸的是我不了解该行或如何更改它。
最后,我不知道进行此更改是否重要。当我连接并缩小我的代码时,保持原样,不要添加横幅和页脚,一切正常。仅用一个替换单个使用限制有什么好处吗?
来自我的 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, '');
}
},
nonMin: {
src: ['src/angular-gmap-gplace.js', 'src/modules/*.js'],
dest: 'dist/angular-gmap-gplace.js'
},
min: {
src: ['src/**/*.js'],
dest: '.tmp/concat.js'
}
}
Is there any benefit to replacing the individual use-stricts with just the one?
没有。只有缺点。
在每个文件中使用 IIFE 意味着每个文件都有自己的范围,除非您有意创建全局文件,否则不会干扰其他文件。
如果您将它们合并到一个 IIFE 中,那么这就不再正确了,它们彼此共享它们的作用域。您可能会不小心覆盖另一个文件中同名变量使用的变量。
我可以按正确的顺序连接我的文件,我可以将 (function(){'use strict';
添加到输出文件的顶部,将 }());
添加到输出文件的底部,但我不知道如何删除 (function(){'use strict';
和 }());
在连接之前来自各个文件。
我通读了文档并尝试使用 custom process example 并且我知道我需要对此行进行一些更改 src.replace(/(^|\n)[ \t]*('use strict'|"use strict");?\s*/g, '');
但不幸的是我不了解该行或如何更改它。
最后,我不知道进行此更改是否重要。当我连接并缩小我的代码时,保持原样,不要添加横幅和页脚,一切正常。仅用一个替换单个使用限制有什么好处吗?
来自我的 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, '');
}
},
nonMin: {
src: ['src/angular-gmap-gplace.js', 'src/modules/*.js'],
dest: 'dist/angular-gmap-gplace.js'
},
min: {
src: ['src/**/*.js'],
dest: '.tmp/concat.js'
}
}
Is there any benefit to replacing the individual use-stricts with just the one?
没有。只有缺点。
在每个文件中使用 IIFE 意味着每个文件都有自己的范围,除非您有意创建全局文件,否则不会干扰其他文件。
如果您将它们合并到一个 IIFE 中,那么这就不再正确了,它们彼此共享它们的作用域。您可能会不小心覆盖另一个文件中同名变量使用的变量。