【发布时间】:2018-11-21 19:29:59
【问题描述】:
运行 grunt 任务编译 scss 文件时出现以下错误:
Running "watch:sass" (watch) task
Waiting...
>> File "Content\sass\main.scss" changed.
Running "sass:dist" (sass) task
Error: expected "{".
@import "layout";
^
Content\sass\main.scss 4:17 root stylesheet
Warning: Exited with error code 65 Use --force to continue.
Aborted due to warnings.
sass 文件(main.scss)包含一行代码:
@import "layout";
布局文件有几行简单的CSS。
我遇到的问题是,我之前在不同的机器上使用完全相同的代码运行了完全相同的配置,没有失败;问题一定出在这台电脑上。
当我运行 node -v 时,我得到了 v8.11.2。当我运行 npm -v 时,我得到 v5.6.0
我正在运行新安装的 Windows 10,使用 Visual Studio 编写代码并使用命令行运行任务。
有人知道为什么会发生这种情况吗?这是我的 package.json:
{
"version": "1.0.0",
"name": "SafeOnlineMVC",
"private": true,
"devDependencies": {
"grunt": "0.4.5",
"grunt-bower-task": "^0.4.0",
"grunt-contrib-concat": "^1.0.1",
"grunt-contrib-jshint": "^1.1.0",
"grunt-contrib-sass": "^0.9.2",
"grunt-contrib-uglify": "^2.0.0",
"grunt-contrib-watch": "^0.6.1"
}
}
我的 gruntfile.js:
module.exports = function (grunt) {
grunt.loadNpmTasks("grunt-bower-task");
grunt.loadNpmTasks("grunt-contrib-watch");
grunt.loadNpmTasks("grunt-contrib-sass");
grunt.initConfig({
sass: {
dist: {
options: {
style: "compressed"
},
files: [
{
"Content/main.css": "Content/sass/main.scss"
}
]
}
},
watch: {
sass: {
files: ["Content/sass/*.scss"],
tasks: ["sass"]
}
}
});
};
谢谢。
编辑:主 scss 文件:
@import "_layout";
编辑:布局 scss 文件:
.inner{
width: 1320px;
margin: 0 auto;
padding: 0 20px;
max-width: 100%;
box-sizing:border-box;
}
【问题讨论】:
-
可以发一下
main.scss和layout.scss的内容吗? -
当然,包括在内。虽然它是基本的。为了以防万一(并相应地更新了主scss),我尝试保存带有和不带下划线的文件
-
您使用的是全新安装的 npm 模块吗?您可以尝试强制重新安装 grunt-contrib-sass
-
都是全新安装,是的。强制重新安装 grunt-contrib-sass 不起作用,但我也许可以从头开始重新安装所有内容。感谢您抽出宝贵时间回复。
-
grunt-contrib-sass使用Ruby gem编译sass,你试过直接用gem编译scss吗?只是为了丢弃 gem 或 ruby 问题:在Content/sass中运行sass main.scss main.css
标签: sass gruntjs grunt-contrib-watch