grunt-contrib-concat:指定要连接的最后一个文件?
grunt-contrib-concat: specify last file to be concatenated?
我正在使用 grunt-contrib-concat 将我所有的自定义 JS 文件连接在一起,并用 IIFE 包装它们。我 运行 遇到一些加载顺序问题(即,我的 init 文件在某些模块之前执行,导致未定义的错误)。我想指定 init.js
在 concat 顺序中应该是最后一个,但我不想指定所有其他 JS 文件的顺序,只是这个特定的最后一个。
这是我的 concat 的当前配置:
/**
* Set project info
*/
project: {
src: 'src',
app: 'app',
assets: '<%= project.app %>/assets',
css: [
'<%= project.src %>/scss/style.scss'
],
js: [
'<%= project.src %>/js/*.js'
]
},
concat: {
dev: {
files: {
'<%= project.assets %>/js/scripts.min.js': '<%= project.js %>'
}
},
options: {
stripBanners: true,
nonull: true,
banner: ';(function($, window, document, undefined){ \n "use strict";',
footer: '}(jQuery, window, document));'
}
},
如何指定要连接的最后一个文件而不向我的项目添加额外的 grunt 模块?
您可以通过连接所有文件 但 init.js
,然后将结果与 init.js
连接起来,使用保持顺序的数组语法:
concat: {
dev1: {
dest: '<tmp>/concat1.js',
src: ['<all your js>', '!init.js']
},
devFinal: {
options: {
stripBanners: true,
nonull: true,
banner: ';(function($, window, document, undefined){ \n "use strict";',
footer: '}(jQuery, window, document));'
},
files: {
dest: 'scripts.min.js',
src: ['<tmp>/concat1.js', 'init.js']
},
},
}
然后连续调用两个目标:
grunt.registerTask('myConcat', ['concat:dev1', 'concat:devFinal']);
我正在使用 grunt-contrib-concat 将我所有的自定义 JS 文件连接在一起,并用 IIFE 包装它们。我 运行 遇到一些加载顺序问题(即,我的 init 文件在某些模块之前执行,导致未定义的错误)。我想指定 init.js
在 concat 顺序中应该是最后一个,但我不想指定所有其他 JS 文件的顺序,只是这个特定的最后一个。
这是我的 concat 的当前配置:
/**
* Set project info
*/
project: {
src: 'src',
app: 'app',
assets: '<%= project.app %>/assets',
css: [
'<%= project.src %>/scss/style.scss'
],
js: [
'<%= project.src %>/js/*.js'
]
},
concat: {
dev: {
files: {
'<%= project.assets %>/js/scripts.min.js': '<%= project.js %>'
}
},
options: {
stripBanners: true,
nonull: true,
banner: ';(function($, window, document, undefined){ \n "use strict";',
footer: '}(jQuery, window, document));'
}
},
如何指定要连接的最后一个文件而不向我的项目添加额外的 grunt 模块?
您可以通过连接所有文件 但 init.js
,然后将结果与 init.js
连接起来,使用保持顺序的数组语法:
concat: {
dev1: {
dest: '<tmp>/concat1.js',
src: ['<all your js>', '!init.js']
},
devFinal: {
options: {
stripBanners: true,
nonull: true,
banner: ';(function($, window, document, undefined){ \n "use strict";',
footer: '}(jQuery, window, document));'
},
files: {
dest: 'scripts.min.js',
src: ['<tmp>/concat1.js', 'init.js']
},
},
}
然后连续调用两个目标:
grunt.registerTask('myConcat', ['concat:dev1', 'concat:devFinal']);