首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当工作目录被深度嵌套并且includePaths是相对的时,Sass编译失败。

当工作目录被深度嵌套并且includePaths是相对的时,Sass编译失败。
EN

Stack Overflow用户
提问于 2016-02-10 19:00:53
回答 1查看 900关注 0票数 1

当试图使用gulp-sass/node-sass/libsass导入npm包的scss时,它在

代码语言:javascript
复制
../../app/assets/stylesheets/_engine.scss
Error: File to import not found or unreadable: bootstrap-material-design/scss/core
       Parent style sheet: /Users/kross/projects/acme/app/assets/stylesheets/_engine.scss
        on line 6 of ../../app/assets/stylesheets/_engine.scss
>> @import "bootstrap-material-design/scss/core";
   ^

版本:

代码语言:javascript
复制
node-sass@3.4.2
gulp-sass@2.2.0

在调查这个问题的时候,我缩小了潜在的外部问题。不管在这个位置替换哪个文件,或者它的内容(甚至是空的内容),libsass似乎无法找到嵌套的@import 相对 find 文件的路径。

在这种情况下:

  1. includePaths: ['../../node_modules']
  2. 编译命令cd spec/dummy && gulp sass目标application.scss
  3. 结构

注意事项:很明显,corenode_modules内的bootstrap-material-design包中找到

很明显,找到了嵌套文件_core.scss,但是嵌套文件无法找到相对于它的文件。

还要注意,如果我的cwd是这个项目的根,我_can_compile。将cwd向下移动到spec/dummy并进行编译,突然就找不到这个嵌套的相对文件了。

我在这里错过了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-10 20:43:39

我将includePaths相对路径切换到一个完全限定的路径,它可以工作。这似乎是个窃听器。

解决方法是确保任何传入的includePaths都是完全限定的目录名。

这个吞咽管道的配方使用findup来做到这一点:

代码语言:javascript
复制
  options: {
    includePaths: [findup('node_modules')] // find any node_modules above the current working directory and return the fully qualified path
  }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35323708

复制
相关文章

相似问题

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