我正在尝试使用grunt-contrib-sass
编译SASS,但我得到一个空的CSS文件。
以下是我编写SASS / SCSS时最简单的package.json
:
{
"name": "sassgrunt",
"version": "1.0.0",
"scripts": {
"sass": "node-sass"
},
"devDependencies": {
"grunt": "^1.0.1",
"grunt-contrib-sass": "^1.0.0",
"node-sass": "^4.7.2",
"sass": "^1.0.0-beta.4"
}
}
这就像SCSS文件一样简单:
body {
background: red;
}
这是gruntfile.js
:
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
sass: {
dist: {
files: {
'./test.css': './test.scss'
}
}
}
});
grunt.loadNpmTasks('grunt-contrib-sass');
};
如果我执行grunt sass
,则会创建一个全新且为空的 test.css
文件。
我想我知道为什么。
此命令从我的源代码创建一个完全没问题的test2.css
:
npm run sass test.scss test2.css
但是这个只是将编译好的CSS输出到显示器并创建一个空文件:
npm run sass test.scss
当我运行grunt sass
时,这正是我看到的。这意味着grunt-contrib-sass
没有正确指定命令行。
我不明白为什么,因为这个设置正是我见过的每个例子中都显示的。当然,我的设置肯定有问题,或者每个人都有这个问题?
答案 0 :(得分:0)
可能还有其他不妥之处,但我认为grunt-contrib-sass
只是一个哑巴。
我用grunt-sass
替换它,它与同一个gruntfile设置完美配合。只需使用NPM或Yarn进行安装,然后将grunt.loadNpmTasks('grunt-contrib-sass');
替换为grunt.loadNpmTasks('grunt-sass');
。