我想设置咕unt甜的甜味,以便我可以开始观看我的sweetjs使用文件并随着它们的变化而编译它们。
但是,我是制作Gruntfiles的新手,并且该链接中根本没有足够的信息来知道如何进行设置。搜索使用grunt.loadNpmTasks('grunt-sweet');
的文件,我能够找到一个用作模板的文件,但我无法正常工作。
这个gruntfile
/*global module:false*/
module.exports = function(grunt) {
'use strict';
grunt.initConfig({
sweet: {
content_dir: 'src',
publish_dir: 'build',
},
watch: {
sweet: {
files: [
'src/**'
],
tasks: 'sweet'
}
}
});
grunt.loadNpmTasks('grunt-sweet');
// Project tasks
grunt.registerTask('default', 'sweet');
};
给我
W:sweetjs-playground> grunt sweet:watch
Running "sweet:watch" (sweet) task
Fatal error: Object #<Object> has no method 'done'
W:sweetjs-playground> grunt sweet -v
Initializing
Command-line options: --verbose
Reading "Gruntfile.js" Gruntfile...OK
Registering Gruntfile tasks.
Initializing config...OK
Registering "grunt-sweet" local Npm module tasks.
Reading W:sweetjs-playgroundnode_modulesgrunt-sweetpackage.json...OK
Parsing W:sweetjs-playgroundnode_modulesgrunt-sweetpackage.json...OK
Loading "sweet.js" tasks...OK
+ sweet
Loading "Gruntfile.js" tasks...OK
+ default
Running tasks: sweet
Running "sweet" task
Verifying property sweet exists in config...OK
Fatal error: Object #<Object> has no method 'done'
这似乎是成功的,直到没有。我在这里做错了什么?
我想要的只是为了将SRC中的文件自动编译为build
我不是这个专家,但是您可以尝试此片段。我希望它能有所帮助。
module.exports = function(grunt) {
grunt.initConfig({
sweetjs: {
src: {
files: [{
expand: true,
cwd: 'src/',
src: ['**/*.js'],
dest: 'build/'
}]
}
},
watch: {
sweetjs: {
files: ['src/**/*.js'],
tasks: ['sweetjs:src']
}
}
});
grunt.event.on('watch', function(action, filepath, target) {
if(action == 'changed' && target == 'sweetjs') {
grunt.config.set('sweetjs.src.src', [filepath]);
grunt.config.set('sweetjs.src.dest', filepath.replace(/^src/, 'build'));
}
});
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-sweet.js');
grunt.registerTask('default', ['sweetjs']);
};
如果它不起作用,也许您的files
路径是问题所在。尝试添加扩展名src: ['src/**/*{.php,.html}'],
我不知道这是否是您错误的原因,但我认为是这样。删除sweets之后的逗号上次config-property:
publish_dir: 'build', <--