【发布时间】:2018-08-27 03:38:15
【问题描述】:
我有一个简单的 Gruntfile 配置为运行 sass,然后是 autoprefix (postcss),最后是 cssmin。它应该在检测到 scss 文件中的更改以及生成的 css 文件中的后续更改(在运行 sass 之后)之后按该顺序运行任务。但是,它只运行 sass 任务。这是我的 gruntfile:
module.exports = function(grunt) {
grunt.initConfig({
watch: {
sass: {
files: 'dev/scss/**/*.scss',
tasks: ['sass']
},
autoprefix: {
files: 'dist/css/main.css',
tasks: ['postcss']
},
cssmin: {
files: 'dist/css/main-prefixed.css',
tasks: ['cssmin']
},
js_concat: {
files: 'dev/scripts/**/*.js',
tasks: ['concat']
},
js_uglify: {
files: 'dist/scripts/built.js',
tasks: ['uglify']
}
},
sass: {
dev: {
files: {
'dist/css/main.css' : 'dev/scss/main.scss'
}
}
},
cssmin: {
build: {
src: 'dist/css/main-prefixed.css',
dest: 'dist/css/main.min.css'
}
},
postcss: {
options: {
map: true,
processors: [
require('autoprefixer')({browsers: ['last 2 versions']})
]
},
dist: {
src: 'dist/css/main.css',
dest: 'dist/css/main-prefixed.css'
}
},
concat: {
options: {
separator: '\n\n\n'
},
dist: {
src: ['dev/scripts/*.js'],
dest: 'dist/scripts/built.js'
}
},
uglify: {
build: {
files: {
'dist/scripts/built.min.js': ['dist/scripts/built.js']
}
}
}
});
grunt.loadNpmTasks('grunt-contrib-sass');
grunt.loadNpmTasks('grunt-contrib-cssmin');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-postcss');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.registerTask('default', ['watch']);
};
这是文件结构:
Gruntfile.js
dev/
|__ scss/
|__ (all scss partials and main.scss file)
dist/
|__ css/
|__ main.css
|__ main-prefixed.css
|__ main.min.css
当我手动运行任务时,它可以正常工作。
这可能是什么问题?
【问题讨论】:
标签: gruntjs grunt-contrib-watch postcss autoprefixer