正如已经说过的,角度库现在支持资产 https://angular.io/guide/creating-libraries#managing-assets-in-a-library自从v9.x有角的。
但它没有得到很好的解释他们的网站 https://github.com/ng-packagr/ng-packagr/blob/master/docs/copy-assets.md。为了让它发挥作用,你必须:
- Add an assets folder at the root of your library project
- Add
"assets": ["./assets"],
进入ng-package.json
图书馆的文件
{
"$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
"dest": "../../dist/icon",
"assets": ["./assets"], // <-- Add it here
"lib": {
"entryFile": "src/public-api.ts"
}
}
提醒:tsconfig.lib.json 路径在 Angular 库中不起作用,因此更改后您可能需要手动编辑具有相对路径的资产的导入
-
ng build custom-project --prod
. It then appear in your dist folder
然后你可以在这个文件夹中添加你想要的内容
附加提示:在您的项目中使用它
然后,如果您希望将其使用到导入的项目中,请执行以下操作:
angular.json 中的资源、js、样式
将这些文件添加到您的angular.json
file
{
/*...*/
"assets": [ // Import every assets
{
"glob": "**/*",
"input": "./node_modules/custom-project/assets",
"output": "/assets/"
}
],
"styles" : [ // Only custom css
"node_modules/custom-project/assets/my-css-file.css"
],
"scripts" : [
"node_modules/custom-project/assets/my-js-file.js"
]
}
Js作为app.module的一部分
也可以直接将js添加到children文件中即使我不确定它是否真的延迟加载这些文件.
例如,进入你的home.module.ts
文件、导入
import 'custom-project/assets/my-js-file.js'