如何在 angular 8 库中包含 SASS 样式
How to include SASS styles in an angular 8 library
我有一个 angular 库,用于在两个项目之间共享一些组件、指令等。
最近我尝试在库中包含一些样式以在两个项目中重用,但我可以实现 ng build 将其包含在包中。
¿任何线索?
到目前为止我发现的唯一方法是 运行 一个 npm 脚本在打包 .tgz 供内部使用之前复制 sass dist 文件夹中的文件(使用复制文件)。
这是我的 package.json:
{
...
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e",
"uiutils_build": "ng build my-library",
"uiutils_styles": "copyfiles -f projects/my-library/src/scss/*.scss dist/@my-namespace/my-library/scss",
"uiutils_pack": "cd dist/@my-namespace/my-library && npm pack",
"uiutils_copy": "copyfiles -f dist/@my-namespace/my-library/*.tgz ../infraestructure.tourbitz.com/packages/@my-namespace/my-library",
"uiutils_package": "npm run uiutils_build && npm run uiutils_styles && npm run uiutils_pack && npm run uiutils_copy"
},
...
}
重要的脚本是uiutils_styles。
¿如何使用?
在我的样式文件中,我包含了以下样式:
@import "~@my-namespace/ui-uitils/scss/my_style.scss";
为了注册全局样式,我在 angular.json 文件的项目部分做了:
{
...
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"styles": [
"node_modules/@my-namespace/my-library/scss/my_style.scss",
"src/styles.scss"
],
...
},
...
}
更新 Angular 9:
在库中,在 lib
目录旁边,创建一个 styles
目录,然后将其作为资产添加到 ng-rollout.yaml
,如下所示:
"assets": [
"styles/**/*.scss"
]
这会将在 styles
目录中递归找到的所有 SCSS-files 复制到库输出目录中的 styles
目录中。
我有一个 angular 库,用于在两个项目之间共享一些组件、指令等。
最近我尝试在库中包含一些样式以在两个项目中重用,但我可以实现 ng build 将其包含在包中。
¿任何线索?
到目前为止我发现的唯一方法是 运行 一个 npm 脚本在打包 .tgz 供内部使用之前复制 sass dist 文件夹中的文件(使用复制文件)。
这是我的 package.json:
{
...
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e",
"uiutils_build": "ng build my-library",
"uiutils_styles": "copyfiles -f projects/my-library/src/scss/*.scss dist/@my-namespace/my-library/scss",
"uiutils_pack": "cd dist/@my-namespace/my-library && npm pack",
"uiutils_copy": "copyfiles -f dist/@my-namespace/my-library/*.tgz ../infraestructure.tourbitz.com/packages/@my-namespace/my-library",
"uiutils_package": "npm run uiutils_build && npm run uiutils_styles && npm run uiutils_pack && npm run uiutils_copy"
},
...
}
重要的脚本是uiutils_styles。
¿如何使用?
在我的样式文件中,我包含了以下样式:
@import "~@my-namespace/ui-uitils/scss/my_style.scss";
为了注册全局样式,我在 angular.json 文件的项目部分做了:
{
...
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"styles": [
"node_modules/@my-namespace/my-library/scss/my_style.scss",
"src/styles.scss"
],
...
},
...
}
更新 Angular 9:
在库中,在 lib
目录旁边,创建一个 styles
目录,然后将其作为资产添加到 ng-rollout.yaml
,如下所示:
"assets": [
"styles/**/*.scss"
]
这会将在 styles
目录中递归找到的所有 SCSS-files 复制到库输出目录中的 styles
目录中。