私はこれで立ち往生しています。このタイプのタスクを含む 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.
これを理解する方法が本当にわかりません。何か案は?