我正在尝试设置Grunt,以便在使用Express的简单项目中进行更改(使用grunt-contrib-watch)时编译sass。我的gruntfile有一个“服务器”任务,我用它来运行我的应用程序;这个任务编译sass并运行应用程序。
启动服务器时sass的初始编译工作正常。但是,检测到应用程序运行时的更改,并且任务似乎已启动但似乎永远不会完成。 以下是我的输出的副本:
Running "sass:dist" (sass) task
File public/stylesheets/main.css created.
Running "concurrent:main" (concurrent) task
Running "watch" task
Waiting...Running "nodemon:main" (nodemon) task
2 Jun 19:55:25 - [nodemon] v0.7.10
2 Jun 19:55:25 - [nodemon] to restart at any time, enter `rs`
2 Jun 19:55:25 - [nodemon] watching: C:\Development\grunt-test
2 Jun 19:55:25 - [nodemon] starting `node app.js`
OK
>> File "assets\stylesheets\main.scss" changed.
Running "sass:dist" (sass) task
sass任务永远不会完成。只有当我运行“服务器”任务时才会发生这种情况,如果我运行“监视”任务它正常工作。
这是我的 Gruntfile.js ,它可以重现这个问题:
module.exports = function (grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
sass: {
dist: {
options: {
style: 'compressed'
},
files: [{
expand: true,
cwd: 'assets/stylesheets',
src: ['*.scss'],
dest: 'public/stylesheets',
ext: '.css'
}]
}
},
nodemon: {
main: {}
},
watch: {
scss: {
files: 'assets/stylesheets/**/*',
tasks: ['compile']
}
},
concurrent: {
main: {
tasks: ['nodemon', 'watch'],
options: {
logConcurrentOutput: true
}
}
}
});
grunt.loadNpmTasks('grunt-nodemon');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-concurrent');
grunt.loadNpmTasks('grunt-contrib-sass');
grunt.registerTask('compile', ['sass']);
grunt.registerTask('server', ['compile', 'concurrent']);
};
这是我的 package.json 文件:
{
"name": "grunt-test",
"description": "grunt-test",
"version": "0.0.1",
"private": true,
"main": "app.js",
"dependencies": {
"express": "4.x",
"debug": "0.8.1"
},
"devDependencies": {
"grunt": "^0.4.5",
"grunt-contrib-watch": "^0.5.3",
"grunt-nodemon": "^0.1.2",
"grunt-concurrent": "^0.4.3",
"grunt-contrib-sass": "^0.7.3"
}
}
任何帮助都将不胜感激。
答案 0 :(得分:0)
我知道这是一个旧的,但我遇到了同样的错误。
我为grunt-sass换掉了grunt-contrib-sass,它本来应该有效。