我可以为所有 angular2/4 项目使用一个 node_module 文件夹吗
Posted
技术标签:
【中文标题】我可以为所有 angular2/4 项目使用一个 node_module 文件夹吗【英文标题】:Can I use one node_module folder for all angular2/4 projects 【发布时间】:2018-03-09 19:21:20 【问题描述】:我正在学习 Angular,每次创建一个新项目大约需要 5 分钟,因为 CLI 创建了 100MB 文件夹“node_modules”。而且这个文件夹中的文件总是一样的(除非你添加了一些我从来没有做过的依赖项)。有没有办法为每个项目使用一个 node_modules 文件夹?
【问题讨论】:
在单页应用中,为什么会有多个node_module
文件夹?
@pixelbits 没有。我在问如何将 node_modules 文件夹用于多个应用程序。
【参考方案1】:
查看https://yarnpkg.com/blog/2017/08/02/introducing-workspaces/
Yarn Workspaces 是一项允许用户安装依赖项的功能 来自单个根目录的子文件夹中的多个 package.json 文件 package.json 文件,一次完成。
使工作区原生于 Yarn 可以实现更快、更轻的安装 通过防止跨工作区的包重复。纱也可以 在相互依赖的工作区之间创建符号链接,并将 确保所有目录的一致性和正确性。
npm install -g yarn
【讨论】:
【参考方案2】:您可以全局安装所有依赖项或创建从一个地方到每个项目的符号链接。
但这是不好的做法,正确的方法是为每个项目使用单独的node_modules
,即使您使用的是相同的包。一旦你需要在不同的项目中使用不同版本的同一个包,常见的node_modules
会让人很头疼。
如果您只想更快地安装软件包并且不关心版本是否匹配,请尝试使用npm cache 和npm install --prefer-offline。我没有使用它,但相信它应该可以工作。
【讨论】:
【参考方案3】:只有 node 安装的包 (npm install) 可以在 node_modules 文件夹中。这是因为,如果有人想要安装您的项目,而不是下载包含 node_modules 的整个项目。他们键入 npm install。
基于 packag.json,node_modules 现在将被下载到 node_modules 文件夹中。
因此,如果它是 npm 包,您可以将 angular 放在 node_modules 文件夹中。不,您不能将自己的文件放在此文件夹中。
因此,您只需将 package.json 复制到每个项目并运行 npm install。那么所有的 node_modules 都会是一样的。
【讨论】:
以上是关于我可以为所有 angular2/4 项目使用一个 node_module 文件夹吗的主要内容,如果未能解决你的问题,请参考以下文章
maven - Spring Boot/Angular 2/4 项目战构建