【问题标题】:is it possible to share same node modules between multiple projects?是否可以在多个项目之间共享相同的节点模块?
【发布时间】:2019-05-18 12:18:49
【问题描述】:

到目前为止,我每次都在为新的 Angular 项目安装节点模块。是否可以通过配置任何文件将一个项目节点模块用于另一个项目(例如更改任何文件中的路径以便它可以使用该模块)?

【问题讨论】:

  • 不,你不希望 node_modules 是特定于该项目的,它是从单个项目的 package.json 生成的
  • 从逻辑上讲,我不会为了学习目的而使用项目所需的同一组依赖项。
  • @PujanShah 在你的项目的 angular.json 文件中,你可以将 "$schema": 的值更新为节点模块文件夹的相对路径。

标签: node.js angular node-modules


【解决方案1】:

首先我很震惊地看到这实际上是一些人正在做的事情 - 请参阅:https://github.com/nodejs/help/issues/681

不过我建议不要这样做。

每个项目都有自己的 node_modules 文件夹(和 package.json)背后的想法是,您的每个项目都应该指定自己的依赖项(包括特定版本),这对于稳定性、可预测性、可重复性等是一件好事你的各种项目。这是关于节点依赖模型的一篇很好的文章:https://lexi-lambda.github.io/blog/2016/08/24/understanding-the-npm-dependency-model/

现在,如果您谈论的是本地模块(您自己创建的),您可以查看https://docs.npmjs.com/cli/link.html

【讨论】:

  • 基本上它应该是不同的,但正如我提到的学习目的,有多个任务(应用程序)并且都具有相同的依赖关系,那么我们可以在单个项目中创建多个应用程序。
【解决方案2】:

从 Angular 6 开始,您可以在单个 Angular 项目中生成多个应用程序。

https://angular.io/cli/generate#application-command

Angular cli 命令生成的应用程序留在同一个工作区并共享 node_modules。

比如你要生成appmy-project

ng generate application my-project

如果它的依赖项与之前的没有不同,您可以使用--skipInstall=true 选项和ng generate 命令。

还有ng serve--project 选项:

ng serve --project=my-project

【讨论】:

  • 感谢您的解决方案。我试过了,它按预期工作。 :)
猜你喜欢
  • 1970-01-01
  • 2018-07-22
  • 2020-02-01
  • 2015-07-13
  • 2019-11-05
  • 2011-03-24
  • 1970-01-01
  • 1970-01-01
  • 2015-10-09
相关资源
最近更新 更多