2

我已经安装了 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断点?

4

2 回答 2

3

假设你安装了 breakpoint-sass 包:

npm install breakpoint-sass --save-dev

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

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

于 2016-08-10T20:23:01.393 回答
1

看一下sass-loader导入文档

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

编写@import "file" 与@import "./file" 相同。

几乎可以描述您所看到的问题。

解决方案

对此的答案是要么安装一个npm 包作为断点而不是 gem,然后从 node_modules 导入它,就像你对susy. 或者您可以尝试@import使用 ruby​​ gem 的完整文件路径。

于 2016-05-07T18:26:26.183 回答