如何用webpack导入ruby gems(断点)?

时间:2016-05-07 15:10:56

标签: sass webpack breakpoint-sass

我已经安装了susy和sass,并在webpack配置中设置了css / sass加载器:

{ test: /\.scss$/, loader: ExtractTextPlugin.extract('css!sass') }

这是我的主要scss文件:

@import "~susy/sass/susy";
@import "breakpoint";

$susy: (
  columns: 12,
  gutters: 1/4,
  math: fluid,
  output: float,
  gutter-position: inside
);

.layout {
  @include container();
  @include layout(12 1/4);
}

这是webpack输出中的错误

ERROR in ./src/styles/base.scss
Module build failed: ModuleBuildError: Module build failed: 
@import "breakpoint";
^
      File to import not found or unreadable: breakpoint
gems which are installed

viktors-mbp:~ viktor$ gem list breakpoint sass compass

*** LOCAL GEMS ***

breakpoint (2.7.0)

*** LOCAL GEMS ***

sass (3.4.22)
sassy-maps (0.4.0)

*** LOCAL GEMS ***

compass (1.1.0.alpha.3, 1.0.3)
compass-core (1.1.0.alpha.3, 1.0.3)
compass-import-once (1.0.5)

有谁知道如何正确@import断点?

2 个答案:

答案 0 :(得分:3)

假设你安装了breakpoint-sass包:

npm install breakpoint-sass --save-dev

然后你必须导入它,但是“让SASS加载器知道”这个“断点”元素在SASS文件夹之外,与其他节点模块一起:

@import '~breakpoint-sass/stylesheets/breakpoint';

答案 1 :(得分:1)

查看sass-loader导入documentation

  

sass-loader使用node-sass的自定义导入器功能将所有查询传递给webpack解析引擎。因此,您可以从node_modules导入Sass模块。只需在它们前面添加一个〜来告诉webpack这不是一个相对导入。

  

编写@import“file”与@import“./ file”相同。

几乎描述了你所看到的问题。

解决方案

答案是安装npm package for breakpoint代替gem并从node_modules导入它,就像使用susy一样。或者您可以尝试@import ruby​​ gem的完整文件路径。