如何为Angular 2+编写可重用的私有库

时间:2017-07-21 20:54:34

标签: node.js angular web-deployment angular-cli

我创建了一个用于创建仪表板的通用框架,该仪表板由使用Angular-CLI的多个模块组成。

有些模块是完全独立的。使用此库的开发人员可以根据需要在其项目中添加模块。我有一个在Angular Js 1.0中创建的此框架的先前版本,在此我已经作为javascript min文件提供。

我必须注意将这个库创建为私有而不是公开的,或者有没有办法将我的模块单独打包并在没有NPM的情况下交付?

1 个答案:

答案 0 :(得分:4)

这个问题归结为两个独立的任务:创建库包并在内部发布它。

创建库包

为了创建一个支持AOT的库,您需要使用ngc -p src/tsconfig-aot.json进行编译。

tsconfig-aot.json是tsconfig.json的副本,附加部分:

 "files": [
   "./app/index.ts"
 ],
 "angularCompilerOptions": {
   "annotateForClosureCompiler": true,
   "genDir": "../dist/out-lib-tsc",
   "skipMetadataEmit" : false,
   "skipTemplateCodegen": true,
   "strictMetadataEmit": true,
   "flatModuleOutFile": "libname.js",
   "flatModuleId": "libname"
 }

我需要通过将文件从src / app移动到输出目录的根目录来修复目录结构。然后将src / app和src / asserts复制到输出目录。

有几个详细的指南。例如Distributing an Angular Library - The Brief Guide

发布库包

发布私有库有几种选择:

  • 引用git repository中的分支注意:使用不同的存储库进行开发(无编译器输出)和发布
  • 可能是个好主意。
  • npm为fee
  • 提供私人存储库
  • 您可以设置本地注册表(例如ArtifactorySinopia