Angular 7-安装本地库(未发布)-项目设置

时间:2019-02-27 08:51:20

标签: angular npm angular-library

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

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

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

因此,我使用npm install将我的库文件包含在我的应用程序中:
-“核心”:“文件:./ dist-lib / core” -“共享”:“文件:./ dist-lib /共享”

一切正常,但是当有人设置项目时出现问题。由于找不到库(找不到dist-lib / core ...),所以项目无法“ npm安装”,并且由于没有安装ng-packager(需要npm安装),所以无法构建库。

我试图将core和shared放在optionalDependencies中。再好不过了。

我可以在另一个有角度的应用程序中移动库,但这并不有趣。

有人吗?

2 个答案:

答案 0 :(得分:0)

因此问题出在npm依赖项上(本质上与Angular无关)。要解决此问题,您可以在npm上发布模块(您可能不想这样做),也可以在私有存储库中发布它们。

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

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

答案 1 :(得分:0)

我不想发布,因为图书馆正在开发中。

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

因此,我最后一个用于设置项目的命令是(带有核心和共享库,位于optionalDeps中):

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

  • 删除.package-lock.json
  • 不带库的npm安装
  • 构建核心库和共享库
  • npm安装库