首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gulp-sass无法编译scss文件

Gulp-sass无法编译scss文件
EN

Stack Overflow用户
提问于 2014-01-07 03:48:07
回答 3查看 35.5K关注 0票数 12

我正在使用Gulp将我的sass编译成css。一个简单的任务编译_/sass目录中的style.scss文件,并将输出保存到项目的根目录中。style.scss仅用于导入_/sass目录中的其他文件。

当我从命令行($ gulp)运行默认任务时,我得到了sass无法编译的错误。它被完整地包含在下面。我已经从包含的文件中删除了所有内容,并再次运行该任务。我仍然收到相同的错误(我在网上读到的一些东西表明这可能是一个编码问题。我不完全理解编码,以及在我的场景中它可能会如何破坏事情)。

我还从命令行$ sass _/sass/style.scss style.css运行,它可以很好地处理所包含文件中的内容。这让我想到了gulp插件本身的一个问题。

来自gulpfile.js的相关代码片段:

代码语言:javascript
复制
var gulp = require('gulp');
var sass = require('gulp-sass');

// Compile sass files
gulp.task('sass', function () {
    gulp.src('./_/sass/style.scss')
        .pipe(sass())
        .pipe(gulp.dest('./'));
});

// The default task (called when you run `gulp`)
gulp.task('default', function() {
  gulp.run('sass');

  // Watch files and run tasks if they change

  gulp.watch(['./_/sass/style.scss'], function() {
    gulp.run('sass');
  })
});

Style.scss的完整内容:

代码语言:javascript
复制
/* RESET */
@import '_/sass/reset';
/* TYPOGRAPHY */
@import '_/sass/typography';
/* MOBILE */
@import '_/sass/mobile';
/* MAIN */
@import '_/sass/main';

目录结构:

代码语言:javascript
复制
├── _
│   ├── inc
│   │   ├── stuff
│   ├── js
│   │   ├── otherstuff.js
│   └── sass
│       ├── main.scss
│       ├── mobile.scss
│       ├── print.scss
│       ├── reset.scss
│       ├── style.scss
│       └── typography.scss
├── gulpfile.js
└── style.css

终端吐出:

代码语言:javascript
复制
[gulp] Using file /Users/jeshuamaxey/project/dir/path/gulpfile.js
[gulp] Working directory changed to /Users/jeshuamaxey/project/dir/path/html5reset
[gulp] Running 'default'...
[gulp] Running 'sass'...
[gulp] Finished 'sass' in 3.18 ms
[gulp] Finished 'default' in 8.09 ms

stream.js:94
      throw er; // Unhandled stream error in pipe.
            ^
source string:11: error: file to import not found or unreadable: 'reset'
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-01-09 05:23:23

保持您的导入原样,只需在您的gulp sass模块中传递includePaths选项作为参数:

代码语言:javascript
复制
gulp.src('./_/sass/style.scss')
        .pipe(sass({ includePaths : ['_/sass/'] }))
        .pipe(gulp.dest('./'));

...should为你做了这件事。

根据https://github.com/dlmanning/gulp-sass/issues/1

票数 16
EN

Stack Overflow用户

发布于 2014-01-07 12:57:13

为此,您需要从相同的gulpfile.js文件夹开始

代码语言:javascript
复制
@import '_/sass/reset'

我认为Gulp读取导入并找到gulpfile.js所在的文件

票数 0
EN

Stack Overflow用户

发布于 2016-06-07 18:04:20

如果您在Windows中使用Sublime text,则应在Sunlime配置中添加规则。只需在偏好设置>设置-用户中添加"atomic_save" : true

https://github.com/dlmanning/gulp-sass/wiki/Common-Issues-and-Their-Fixes#partials-sporadically-not-found

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20957998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档