运行grunt sass编译任务时出错
我在运行grunt任务编译scss文件时出现以下错误:运行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
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