ugl*_*nky 14 javascript concatenation gruntjs
这是我第一次使用Grunt,我希望它将所有我的js模块组合在一起,每个模块都包含一个立即执行的函数,包含一个'use strict'声明并将它们放入一个文件中,仅包含在一个立即执行的函数,只有一个'use strict'声明.
这通常是怎么做的?
我认为这将是一个常见的用例?也许我会以错误的方式处理事情?我应该使用其中一种模块加载格式(即commonjs,amd)所有这些文件将始终一起加载到浏览器中,所以我实际上不介意删除所有立即执行的函数,如果这是人们通常如何去做的话.重要的是,最终结果以某种方式包装,传递lint和单元测试并包含'use strict'声明.
(我应该澄清一点,我确实有它工作,linting,单元测试,连接和缩小,当我在最终的连接文件中看到一堆不必要的立即执行函数时,我觉得我做错了.)
bri*_*lez 34
从拉请求10开始,grunt-contrib-concat现在有了一个footer选项.我会使用横幅和页脚,而不是介绍和outro文件.
Gruntfile.js
concat: {
dist: {
src: ['src/my-lib.js'],
dest: 'dist/<%= pkg.name %>.js',
options: {
banner: ";(function( window, undefined ){ \n 'use strict';",
footer: "}( window ));"
}
}
}
Run Code Online (Sandbox Code Playgroud)
在我看来,这更易于维护,并允许使用Gruntfile中定义的其他属性进行模板化.
elc*_*nrs 22
我通常像jQuery团队那样做.您创建一个intro.js并将outro.js其他所有内容放在其中:
intro.js
;(function( window, undefined ){
'use strict';
Run Code Online (Sandbox Code Playgroud)
outro.js
}( window ));
Run Code Online (Sandbox Code Playgroud)
grunt.js:
concat: {
dist: {
src: [
'js/src/intro.js',
...
'js/src/outro.js'
],
dest: 'js/out/app.js'
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6100 次 |
| 最近记录: |