小ネタ。
1. loadNpmTasks
Before:
grunt.loadNpmTasks 'grunt-exec'
grunt.loadNpmTasks 'grunt-regarde'
grunt.loadNpmTasks 'grunt-contrib-livereload'
After:
grunt.loadNpmTasks task for task in [
'grunt-exec'
'grunt-regarde'
'grunt-contrib-livereload'
]
2. registerTask
Before:
grunt.registerTask 'initialize', ['copy-components']
grunt.registerTask 'build', ['exec:build_index_page']
grunt.registerTask 'server', ['exec:server']
grunt.registerTask 'default', [
'livereload-start'
'exec:server_background'
'regarde'
]
After:
grunt.registerTask name, targets for name, targets of {
'initialize': ['copy-components']
'build': ['exec:build_index_page']
'server': ['exec:server']
'default': [
'livereload-start'
'exec:server_background'
'regarde'
]
}
実例
追記: JavaScriptの場合
せっかくなのでJavaScriptの場合も考えました。JavaScript難しい()
1. loadNpmTasks
[
'grunt-exec',
'grunt-regarde',
'grunt-contrib-livereload'
].forEach(grunt.loadNpmTasks);
2. registerTask
+{
tasks: {
'initialize': ['copy-components'],
'build': ['exec:build_index_page'],
'server': ['exec:server'],
'default': [
'livereload-start',
'exec:server_background',
'regarde'
]
},
get valueOf() { for (this.set in this.tasks) {/* Do nothing */} },
set set(name) { grunt.registerTask(name, this.tasks[name]); }
};
注意
- ジョークです
- 実行はできますが、JSHintは通りません