2

我们正在开发一个共享的小部件库@acme/widget-collection,它是内部作为单独模块开发的所有小部件的集合 -@acme/widget1等等@acme/widget2

这应该允许需要使用小部件的开发人员简单地导入@acme/widget-collection而不需要单独导入所有小部件。

所以库命名为@acme/widget-collectionimports @acme/widget1,当然@acme/widget2@acme/widget3然后导出它们,以便在导入时可用@acme/widget-collection

在共享库中,我们将所有小部件定义peerDependenciespackage.json.

"peerDependencies": {
    "@acme/widget1": "^0.0.1",
    "@acme/widget2": "^0.0.1",
    "@acme/widget3": "^0.0.1"
  }

@acme/widgets-collection库导入项目后,在运行或构建项目时,我们收到以下错误 - error TS2307: Cannot find module @acme/widget1

如果我们手动安装依赖项,即npm i @acme/widget1 @acme/widget2 @acme/widget3它可以正常工作。

但是,我们试图避免手动安装所有依赖项,@acme/widget-collections因为这些依赖项不断变化,我们希望 npm 自动安装它们。

运行npm i @acme/widget-collection似乎没有安装它们。

是否有安装依赖项的 npm 本机方式?

如果没有,是否应该直接将它们安装ng-packagr@acme/widget-collection/node_modules文件夹中?

更新

将依赖项输入为“依赖项”而不是“peerDependencies”似乎会在运行时自动安装它们,npm i @acme/widget-collection但我不确定这是否是推荐的方式,因为我见过的大多数角度示例都使用peerDependencies. 这似乎有效:

"dependencies": {
        "@acme/widget1": "^0.0.1",
        "@acme/widget2": "^0.0.1",
        "@acme/widget3": "^0.0.1"
      }

并运行npm inpm i @acme/widget-collection将安装@acme/widget1@acme/widget2@acme/widget3node_modules文件夹中。

4

0 回答 0