【问题标题】:Deploy Angular 6 app with component library使用组件库部署 Angular 6 应用程序
【发布时间】:2019-01-03 10:49:33
【问题描述】:

我构建了一个 Angular 6 应用程序,该应用程序由一个库组成,该库包含将来应该重用的组件和一个应用程序。我使用 Angular cli 创建了所有内容,所以我有默认结构

my-app
 |
 +-projects
 |   |
 |   +-my-lib
 |      |
 |      +-src
 |      +-package.json
 |
 +-src
 +-package.json

为了构建项目,我首先使用ng build my-lib --prod 构建库,然后使用ng build --prod 构建应用程序。之后 dist 目录是这样的

dist
 |
 +-my-app
 +-my-lib

我现在的问题是如何将它部署到我的服务器上,以便应用程序可以访问该库。在本地一切正常,所以我应该像往常一样将整个dist 目录传输到我的服务器吗? 或者我应该将库发布到 npm 并将其作为常规依赖项添加到我的package.json。 如果是,我如何设置它以不干扰本地开发,我想在 dist 目录中构建库?

【问题讨论】:

  • 我可能会在 npm 上发布,这样任何人都可以从 npm 中提取。我认为使用 Angular 6,您现在可以打包并更轻松地发布,blog.angularindepth.com/… 或使用名为 ngpackagr npmjs.com/package/ng-packagr 的 npm 库
  • 是的,这没问题,但是我必须将库作为 npm 依赖项添加到我的 package.json 中,这意味着对于本地测试构建,它也将针对 npm 版本构建。然后我必须有两个 package.json

标签: angular angular6 angular-cli-v6


【解决方案1】:

您的my-app 构建已经包含my-lib 库,因此只需部署dist/my-app 就足够了。

至于发布到 npm,这完全取决于您。

对于本地开发,您可以考虑使用npm link

  1. cd dist/my-lib
  2. npm 链接
  3. cd 到/your/project/dir
  4. npm link your-library-name(可能是my-lib

当你更改库并再次构建时,无需重做链接,它会拾取新版本。

但是根据我的经验,当您更新或安装其他“常规”软件包时,您必须重新创建链接。

【讨论】:

  • 那太好了。我将尝试部署应用程序本身。 npm link 对于最新的 Angular cli 版本不是必需的。将lib作为库添加到angular.json就足以构建整个项目
  • 终于有机会对此进行测试,并且该库确实包含在 my-app 捆绑包中。非常感谢
猜你喜欢
  • 2019-01-21
  • 2018-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-15
  • 1970-01-01
  • 2020-09-11
相关资源
最近更新 更多