我使用ng new my-application
命令创建了一个Angular应用程序。此外,我还在这个应用程序中使用ng generate library my-lib
创建了一个库。
这是一个简单的CSS代码,具有背景图像属性。图像文件不存在
.class1 {
background-image: url('./not-existing-file.png');
}
如果我把这个CSS代码放在库projects/my-lib/src/lib/my-lib.component.scss
中并运行ng build my-lib
,那么库就会成功构建。
但是,如果我把这个CSS代码放在src文件夹src/app/app.component.scss
中并运行ng build
,那么我会得到错误:
NonErrorEmittedError: (Emitted value instead of an instance of Error) CssSyntaxError: C:app.component.scss:2:2: Can't resolve '../not-existing-file.png' in 'C:angular-tour-of-heroessrcapp'
我需要在ng build
命令中禁用CSS中的URL检查,就像在ng build my-lib
中一样。有可能吗?
您需要在css加载程序插件中禁用url(...)
处理(这再次需要使用外部web包配置(。基本上在您的web包配置中执行以下操作。
{loader: 'css-loader', options: {url: false}}
但是我建议只内联库中的图像。这样,在编译过程中,您的图像路径将被数据uri取代。您只需要在库ng-package.json
中设置"cssUrl": "inline"
即可使其工作。
{
"$schema": "../../../node_modules/ng-packagr/ng-package.schema.json",
"lib": {
"cssUrl": "inline",
}
}