我已将grunt-hub安装到我的工作区中,看起来像这样
hub/
node_modules/
grunt/
grunt-hub/
Gruntfile.js
package.json
在Gruntfile.js中我写过这个,
module.exports = function (grunt) {
'use strict';
grunt.initConfig({
pkg : grunt.file.readJSON( 'package.json' ),
hub: {
src: [
'hub/*/Gruntfile.js'
],
watch: {
src: '<%= hub.src %>',
tasks: ['watch']
}
}
});
grunt.loadNpmTasks('grunt-hub');
grunt.registerTask('default', []);
}
我在hub目录中有四个文件,它们有自己的Grunt文件。
hub/
project1/
...
Gruntfile.js
...
project2/
...
Gruntfile.js
...
project3/
...
Gruntfile.js
...
project4/
...
Gruntfile.js
...
当我跑...
grunt hub
......它完美无缺;它会观察我所做的所有更改并运行我命令它们运行的方式。
唯一的问题是在命令提示符中我被告知......
>> C:\Grunt\hub\project1\Gruntfile.js:
Running "watch" task
Waiting...
>> C:\Grunt\hub\project2\Gruntfile.js:
Running "watch" task
Waiting...
>> C:\Grunt\hub\project3\Gruntfile.js:
Running "watch" task
Waiting...
...但是我没有被告知正在监视project4。当我对与project4相关的文件进行更改时,没有任何反应,而对其他一切都有效。
我该怎样做才能让它同时观看project4?
答案 0 :(得分:2)
答案 1 :(得分:0)
livereload对此有影响。以下是一些选项:
将监视任务添加到集线器任务配置(grunt.config.hub.js)中的任务列表中:
watch: {
options: {
allowSelf: true
},
src: hubSettings.src,
tasks: ['watch']
},
OR:
grunt hub
grunt hub:target:watch
<强>参考强>
答案 2 :(得分:0)
我的工作方式如下:
// scss files to watch ##
watch_scss: [
'wp-content/themes/**/*.scss', // regex to track all sass files in themes ##
'wp-content/plugins/**/*.scss', // regex to track all sass files in plugins ##
],
// grunt hub - master controller ##
hub: {
all: {
options: {
allowSelf: true,
},
src: [
'Gruntfile.js', // this grunt file ##
'wp-content/themes/**/Gruntfile.js', // in themes ##
'wp-content/plugins/**/Gruntfile.js' // in plugins ##
],
tasks: [ 'default' ]
},
},
// watch task ##
'watch': {
// track changes to scss src files ##
'sass': {
'options': {
'livereload': 1337, // dedicated port for live reload ##
'debounceDelay': 5000, // wait a little for sass to complete ##
},
'files':
'<%= watch_scss %>' // files defined in config ##
,
'tasks': [
[], // nada ##
]
},`
确保包括守望先锋任务:
grunt.loadNpmTasks( 'grunt-contrib-watch' ); // Watcher ##
并为默认定义一个艰苦的任务:
grunt.registerTask( 'default', [
'watch', // watch ##
]);
确保您的单个gruntfile文件在watch任务上也没有livereload选项,然后运行“ grunt hub:all:watch”