我正在学习Angular,每次创建一个新项目需要花费5分钟,因为100MB文件夹" node_modules"哪个CLI创建。并且此文件夹中的文件始终相同(除非您添加一些我从未做过的依赖项)。有没有办法为每个项目使用一个node_modules文件夹?
答案 0 :(得分:5)
查看https://yarnpkg.com/blog/2017/08/02/introducing-workspaces/
Yarn Workspaces是一项允许用户安装依赖项的功能 来自单个根的子文件夹中的多个package.json文件 package.json文件,一气呵成。
使Yarn的原生工作空间可以实现更快,更轻的安装 通过阻止跨工作区的包重复。纱线也可以 在彼此依赖的工作空间之间创建符号链接 确保所有目录的一致性和正确性。
npm install -g yarn
答案 1 :(得分:2)
您可以全局安装所有依赖项,也可以从一个位置创建一个符号链接到每个项目。
但这是不好的做法,正确的方法是为每个项目使用单独的node_modules
,即使您使用相同的包。一旦你需要在不同的项目中使用相同包的不同版本,常见的node_modules
会引起很多麻烦。
如果您只想更快地安装软件包并且不关心版本非常匹配,请尝试使用npm cache和npm install --prefer-offline。我没有使用它,但相信它应该有用。
答案 2 :(得分:1)
只有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都是相同的。