node.js - 如何为 Angular 2+ 编写可重用的私有(private)库

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

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

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

要创建这个私有(private)库而不是公共(public)库,我需要注意哪些事项,或者有什么方法可以将我的模块单独打包并在不使用 NPM 的情况下交付?

最佳答案

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

创建库包

为了创建支持 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

发布库包

发布私有(private)库有多种选项:

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

关于node.js - 如何为 Angular 2+ 编写可重用的私有(private)库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45246569/

相关文章:

svn - 提交时 Node.js 中的符号链接(symbolic link)

Node.js写入失败: Broken pipe after stdout

javascript - 在工作线程之间共享负载的最佳方式

angular - "You seem to not be depending on "@ Angular/核心 "."

java - 如何访问运行在虚拟机中的主机中的Web应用程序

javascript - 在 html 代码中使用 Bootstrap 的浏览器中未显示 Glyphicons?

html - 如何仅在设备上显示响应式网站 View

node.js - Atom IDE 打开 chrome 开发者工具

javascript - 如何使用 ng2-translate 的翻译管道传递翻译 key 而不使用 .json 文件路径

typescript - 修复 WebStorm 中 RxJS 运算符的 TypeScript 自动完成