0

在节点 13.10.1 上测试

ng add我正在通过命令安装一些 Angular Libraries+schematics(由我编写) 。库被添加到package.json 但不package-lock.json添加到. 当我尝试为我的项目提供服务时,我收到了一条关于库peerDependecies不满意的错误消息。

  1. 我跑npm i <missingpackages...>
  2. 我跑ng serve

然后我得到一个新的错误,我之前安装的 Angular 库现在消失了。只剩下他们的范围文件夹(@my-corp)

  1. 然后我重新运行npm i <libraries...>
  2. ng-serve

一切正常(库也已添加到其中package-lock.json)。谁能解释我这种奇怪的行为?

4

1 回答 1

0

我找到了解决方案。

问题的核心是命令运行package-lock.json后缺少更新。ng add <library>

如果您是 angular-library 开发人员,要解决此问题,只需在规则工厂函数中执行以下代码即可:

export function ngAdd(options: ISchema): Rule {
  exec('npm i --package-lock-only'); // <- this code
  return (host: Tree, context: SchematicContext) => {...};
}

如果您只是消费者,请从 cli 运行它

npm i --package-lock-only

希望这可以帮助

于 2020-03-11T16:25:34.817 回答