我被困在这里了。我有这类任务的 gruntfile:
grunt.initConfig({
shell: {
// stub task; do not really generate anything, just copy to test
copyJSON: {
command: 'mkdir .tmp && cp stub.json .tmp/javascripts.json'
}
},
uglify: {
build: {
files: {
'output.min.js': grunt.file.readJSON('.tmp/javascripts.json')
}
}
},
clean: {
temp: {
src: '.tmp'
}
}
});
grunt.registerTask('build', [
'shell:copyJSON',
'uglify:build',
'clean:temp'
]);
而且,当然,这是行不通的,因为没有.tmp/javascripts.json
文件:
Error: Unable to read ".tmp/javascripts.json" file (Error code: ENOENT).
我尝试做一些额外的任务,即在生成文件后创建变量,尝试将其存储在globals.javascript
and grunt.option("JSON")
,如下所示:
grunt.registerTask('exportJSON', function() {
if (grunt.file.exists('.tmp/javascripts.json')) {
grunt.log.ok("JSON with set of javascripts exist");
grunt.option("JSON", grunt.file.readJSON('.tmp/javascripts.json'));
}
else {
grunt.fail.warn("JSON with set of javascripts does not exist");
};
});
grunt.initConfig({
uglify: {
build: {
files: {
'output.min.js': grunt.option("JSON")
}
}
}
});
grunt.registerTask('build', [
'shell:copyJSON',
'exportJSON',
'uglify:build',
'clean:temp'
]);
并且总是有同样的错误Warning: Cannot call method 'indexOf' of undefined Use --force to continue.
真的不知道如何解决这个问题。有任何想法吗?