2

我有一个 Angular 应用程序,它有一个核心模块和一个共享模块。我的架构是这样的:

./repo
  | projects
    | core
    | shared
  | src (my app)

当我构建库时,输出文件夹是 dist-lib/*
当我构建应用程序时,输出文件夹是 dist/*

所以我使用 npm install 将我的库包含在我的应用程序中:
-“core”:“file:./dist-lib/core”-“shared”:“file:./dist-lib/shared”

一切正常,但是当有人设置项目时我遇到了问题。由于找不到库(dist-lib/core not found...),项目无法“npm install”,而且我无法构建库,因为我没有安装 ng-packager(需要 npm 安装)。

我试图将 core & shared 放在 optionalDependencies 中。没有什么比......好。

我可以在其他 Angular 应用程序中移动我的库,但这并不好笑。

有人?

4

2 回答 2

0

所以问题在于 npm 依赖项(本质上它与 Angular 无关)。为了解决这个问题,您可以在 npm 上发布模块(您可能不想这样做)或在私有存储库上发布它们。

后一种解决方案的详细指南可以在这里找到:
https ://docs.npmjs.com/misc/registry

这样您就可以在自己的计算机/服务器上托管您的模块。将私有存储库添加到 package.json 后,您可以将它们添加为依赖项,就好像它们是普通的 npm 包一样。

于 2019-02-27T09:04:54.403 回答
0

我不想发布,因为库正在开发中。

所以我终于找到了问题所在。这是 package-lock.json 试图检查包版本...

所以我设置项目的最终命令是(在 optionalDeps 中使用核心和共享库):

rimraf ./package-lock.json && npm install && npm run build:core && npm run build:shared && npm install

  • 删除 .package-lock.json
  • npm install 没有库
  • 构建核心和共享库
  • npm 安装库
于 2019-02-27T09:28:06.447 回答