【发布时间】:2018-11-07 23:36:06
【问题描述】:
如何设置 index.scss 并将变量、mixins 等的全局样式表导入 Angular 6 库?
Angular CLI 生成一个带有根组件和组件 scss 的库,但添加或导入到根组件的样式对子组件不可用。默认情况下封装样式是有意义的,但我找不到任何关于如何设置它的信息或示例。
可用于 "projectType": "application" 的 angular.json "styles": [...] 路径似乎也不适用于 "projectType": "library"。
提前感谢您的帮助!
更新:我的项目是使用 angular cli v6.0.5 启动的,遵循本指南:https://medium.com/@tomsu/how-to-build-a-library-for-angular-apps-4f9b38b0ed11
TL;指南的 DR:
ng new my-app --style=scss
ng generate library my-library --prefix ml
这是angular 6生成的文件结构:
my-app
projects/
my-library/
src/
lib/
shared/..
widgets/..
my-library.component.ts
my-library.module.ts
sass/
_variables.scss
styles.scss // <<< This is where I want to `@import 'variables';`, and for it to be available in all the components of the "my-library" project.
public_api.ts
src/
app/
app.module.ts // << imports projects/my-library/lib/my-library.module as "my-library".
main.ts
index.scss
index.html
README.md
软件包版本:
Angular CLI: 6.0.5
Node: 10.2.1
OS: darwin x64
Angular: 6.0.3
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router
Package Version
------------------------------------------------------------
@angular-devkit/architect 0.6.5
@angular-devkit/build-angular 0.6.5
@angular-devkit/build-ng-packagr 0.6.5
@angular-devkit/build-optimizer 0.6.5
@angular-devkit/core 0.6.5
@angular-devkit/schematics 0.6.5
@angular/cli 6.0.5
@ngtools/json-schema 1.1.0
@ngtools/webpack 6.0.5
@schematics/angular 0.6.5
@schematics/update 0.6.5
ng-packagr 3.0.0
rxjs 6.2.0
typescript 2.7.2
webpack 4.8.3
【问题讨论】:
-
看来你的项目不是用@angular/cli创建的,如果是新项目我强烈推荐你使用它。
-
@Ploppy 我做了,我使用本指南启动了这个项目:medium.com/@tomsu/…
-
我面临着完全相同的问题。您找到解决方案了吗?
-
@BramW。不,我没有,我刚刚在每个我想使用公共资源的文件中添加了导入。
-
github.com/angular/angular-cli/issues/10927 表示这是 ng-packagr 的限制,github.com/angular/angular-cli/issues/10869 指定了 gulp 解决方法。对不得不引入 gulp 并不感到兴奋,因此我尝试并正在考虑的另一个(非理想)选项是使用 Angular CLI 创建的“根”库组件来保存库的全局样式。它将有一个空模板,但带有
encapsulation: ViewEncapsulation.None,这将导致其样式被添加到全局样式中。然后在应用程序的某处包含(空)模板标签。
标签: angular angular-cli libraries angular6 angular-cli-v6