3

概述

我喜欢新的 Angular 2 CLI,我能够很好地将旧的前端结构迁移到其中。然而,我无法让 Susy ( http://susy.oddbird.net/ ) 加载。它是一个已安装的 gem,可以用作 mixin。

我认为这可能是我如何使用 mixin 的问题,但我尝试了自定义 mixin,它工作得很好。

所以我做了以下事情:

安装

安装 GEM:

gem install susy

NPM 安装: npm install susy sass-loader --save-dev

在 .src/styles.scss 中导入 susy

@import "~susy/sass/susy";

将其包含在 .src/app/app.component.scss

@include container;

当我运行时,ng serve我收到以下错误:

ERROR in ./src/app/app.component.scss
Module build failed: 
    @include container;
         ^
      No mixin named container

Backtrace:
    stdin:2
      in /Users/allie.munro/Desktop/angular-cli/src/app/app.component.scss (line 2, column 11)
 @ ./src/app/app.component.ts 19:21-52
 @ ./src/app/app.module.ts
 @ ./src/main.ts
 @ multi webpack-dev-server/client?http://localhost:4200/ ./src/main.ts

问题

有人看到我在 Angular2 CLI 中安装 Susy 时做错了什么或错过了什么吗?文档确实说要修改我的 webpack 文件,但这不包含在ng new appname提供的文件夹结构中。我确信我可以在 node_modules 文件夹中找到它,但这对我来说似乎不是最佳实践。

4

2 回答 2

3

我按照你的例子让它工作,除了导入必须放在使用 mixins 的 .scss 中。在您的示例中,您只需要在 app.scss 文件中使用 import 语句,容器 mixin 就可以工作。

我相信每个 scss 文件都是单独编译的,并作用于每个组件。因此,如果您想在全局范围内使用 susy 网格,请将其导入到 main styles.scss。如果您的应用程序组件中需要 susy mixins,您也需要将其导入那里。

不幸的是,我没有以任何其他方式成功。

于 2017-02-08T22:55:48.937 回答
0

检查你的 Susy 版本。对于 2.2.14,style.scss 如下:

@import "../node_modules/susy/sass/susy";

$susy: (
  columns: 12,
  container: 1200px,
  gutters: .25,
  debug: (image: show),
  math: fluid,
);

etc.

Susy 3+ 似乎不同。检查文档

于 2019-03-12T14:00:11.520 回答