运行grunt sass编译任务时出错

运行grunt sass编译任务时出错,sass,gruntjs,grunt-contrib-watch,Sass,Gruntjs,Grunt Contrib Watch,我在运行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 styl

我在运行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.
@import "_layout";
.inner{
    width: 1320px;
    margin: 0 auto;
    padding: 0 20px;
    max-width: 100%;
    box-sizing:border-box;
}
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"
  }
}
My Grunfile.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文件:

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.
@import "_layout";
.inner{
    width: 1320px;
    margin: 0 auto;
    padding: 0 20px;
    max-width: 100%;
    box-sizing:border-box;
}
编辑:布局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.
@import "_layout";
.inner{
    width: 1320px;
    margin: 0 auto;
    padding: 0 20px;
    max-width: 100%;
    box-sizing:border-box;
}

如错误消息所示,css中存在错误。选择器名称后缺少一个大括号。

不幸的是,情况并非如此。我已经测试过各种css,甚至是一个空文件。无论我做什么,我都会遇到同样的问题。但只要我把文件复制到我的旧开发机器上,它就会编译得很好。谢谢你发布css。这里面确实有错误。不,那不是错误。测试一下。在选择器和花括号之间不留空格没有什么错。对不起,赛斯,但没有css错误。如果你读了我的回复,你会注意到我说过我在不同的机器上使用完全相同的css(使用相同的sass/npm/node版本)。你能发布
main.scss
layout.scss
的内容吗?当然,包括在内。这是最基本的。我已经尝试过保存带有下划线和不带下划线的文件,以防(并相应地更新了主SCS)您正在使用新安装的npm模块吗?您可以尝试强制重新安装grunt contrib sassIt,这是全新安装是的。强制重新安装grunt contrib sass不起作用,但我可能可以从头开始重新安装所有东西。感谢您花时间回复。由于
grunt contrib sass
使用Ruby gem编译sass,您是否尝试直接使用gem编译scs?只需丢弃一个gem或ruby问题:在
Content/sass
中运行
sass main.scss main.css