自动安装角度库的依赖项

时间:2018-12-02 01:56:59

标签: angular ng-packagr angular-library

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

这应该允许需要使用窗口小部件的开发人员仅导入@acme/widget-collection,而不需要分别导入所有窗口小部件。

因此,名为@acme/widget-collection的库将导入@acme/widget1@acme/widget2@acme/widget3,当然还要导出它们,以便在导入@acme/widget-collection时使它们可用

在共享库中,我们将所有小部件定义为peerDependencies中的package.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文件夹中?

更新

在运行npm i @acme/widget-collection时,自动将依赖项输入为“ dependencies”而不是“ peerDependencies”,但我不确定这是否是推荐的方式,因为我见过的大多数角度示例都使用{{ 1}}。 这似乎可行:

peerDependencies

运行"dependencies": { "@acme/widget1": "^0.0.1", "@acme/widget2": "^0.0.1", "@acme/widget3": "^0.0.1" } npm i将在npm i @acme/widget-collection文件夹中安装@acme/widget1@acme/widget2@acme/widget3

0 个答案:

没有答案