创建angular2库的官方文档怎么样?
我不明白。 为什么我们需要编译来创建库?
我希望只有源代码(一些常用模块)可以在多个项目中重用,而无需编译它。
答案 0 :(得分:1)
我不确定完全理解你的问题,但据我所知,Angular 2库只不过是一个Angular 2应用程序,你可以使用npm作为模块导入另一个。例如ngx-translate。
这些模块必须添加到app.module.ts文件中。
Angular 2也接受非特定的Angular 2模块,您可以在应用中使用它们。例如,如果您想使用MomentJS,则可以执行以下操作:
npm i --save moment
在您的组件或服务或其他任何方面:
import moment = require("moment");
因此,要创建一个库,您可以遵循其中一个方案,任何事情都不应该运行良好。
如果您使用Webpack并希望库全局可用(例如JQuery),您可以在vendor.ts文件中要求它。
答案 1 :(得分:1)
我想我明白你想说的话。 Angular库应该是AOT(提前)兼容,这意味着当另一个项目导入您的库并且他们想要编译他们的项目AOT时,如果您的库(他们导入的)还没有为AOT编译做好准备,它将抛出错误。可重用角度库有很多要求,而不是很多文档。
答案 2 :(得分:1)
您需要做的事情很少。
首先要创建一个单个模块,该模块将从您的库中导出,然后可以导入到另一个应用程序中。该模块可以导入或重新导入库的其他模块。
然后,您需要创建一个包含应用程序类型的声明文件。您可以使用tsc
的{{1}}选项执行此操作。它甚至可以使用outDir
选项编译成一个文件。
最后一件事是你应该告诉webpack
并非捆绑@angular/...
依赖关系。这可以使用externals
属性来完成。阅读更多here。