Sass on Grunt总是创建一个空输出

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sass on Grunt总是创建一个空输出相关的知识,希望对你有一定的参考价值。

我正在尝试使用grunt-contrib-sass编译SASS,但我得到一个空的CSS文件。

这是我能编写的最简单的package.json来编译SASS / SCSS:

{
  "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没有正确指定命令行。

我不明白为什么,因为这个设置正是我见过的每个例子中都显示的。当然,我的设置肯定有问题,或者每个人都有这个问题?

答案

可能还有其他不妥之处,但我认为grunt-contrib-sass只是一个哑弹。

我用grunt-sass替换它,它与相同的gruntfile设置完美配合。只需使用NPM或纱线安装,并用grunt.loadNpmTasks('grunt-contrib-sass');替换grunt.loadNpmTasks('grunt-sass');

以上是关于Sass on Grunt总是创建一个空输出的主要内容,如果未能解决你的问题,请参考以下文章

使用 Grunt 将变量传递给 SASS

使用grunt-sass编译node-sass,我得到错误“致命错误:”原始“参数必须是类型函数。”

实现选项必须传递给 Sass 任务

如何使用 grunt-sass 编译多个 scss 文件

使用 dart sass 实现,grunt-sass 不编译 css 文件而不抛出错误

grunt-nodemon 没有使用 nodemon 来启动服务器