你必须设置底座,以便Grunt
知道从哪里运行应用程序。应设置任务输出的文件以反映结构Wordpress
期望。一切都在路径配置中。
您可以实现更灵活的path
如果您在 Grunt 的配置中尽早配置它,则可以使用该结构。假设Gruntfile.js
位于您网站的根目录中(除了wp-content
目录),您可以进行以下配置:
grunt.initConfig({
// configurable paths
cfg: {
dist: './wp-content/themes/project'
},
// tasks configurations come here...
});
然后在watch
任务,您设置:
livereload: {
files: ['<%= cfg.dist %>/assets/css/*.css'],
options: {
nospawn: true,
interrupt: false,
livereload: true
}
}
所结果的Gruntfile.js
看起来像:
module.exports = function(grunt) {
grunt.initConfig({
// configurable paths
cfg: {
dist: './wp-content/themes/project'
},
less: {
development: {
options: {
compress: false,
yuicompress: false,
optimization: 0
},
files: {
'<%= cfg.dist %>/assets/css/main.css': '<%= cfg.dist %>/assets/css/main.less'
}
}
},
watch: {
styles: {
files: ['<%= cfg.dist %>/assets/css/*.less', '<%= cfg.dist %>/assets/less/*.less'],
tasks: ['less']
},
css: {
files: ['<%= cfg.dist %>/assets/css/*.css'],
options: {
nospawn: true,
interrupt: false,
livereload: true
}
}
}
});
grunt.loadNpmTasks('grunt-contrib-less');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.registerTask('default', ['less','watch']);
};
您仍然需要调整上述内容以满足您的需要,但原则是存在的。