【问题标题】:Angular 7 - Install local library (not published) - Project setupAngular 7 - 安装本地库(未发布) - 项目设置
【发布时间】:2019-07-20 22:26:39
【问题描述】:

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

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

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

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

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

我尝试将 core & shared 放在 optionalDependencies 中。没有比这更好的了。

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

有人吗?

【问题讨论】:

    标签: angular npm angular-library


    【解决方案1】:

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

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

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

    【讨论】:

    • 我使用 git + ssh 发布和安装私有包。
    【解决方案2】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-30
      • 1970-01-01
      • 2018-11-23
      • 2020-05-11
      • 2021-10-08
      • 2019-12-27
      相关资源
      最近更新 更多