我正在学习NodeJS和Electron app dev,目前我工作的每个示例应用程序都运行命令B
,导致node_modules下载到项目文件夹。这会导致非常大量的磁盘使用量,因为许多应用程序反复使用相同的节点模块。
有没有办法将所有项目的所有必需节点模块安装到一个中心位置,并让它们全部使用1个模块源?
我的另一个问题。如果我正在构建的Electron应用程序打包为可安装的.exe文件。当应用程序在另一台用户PC上运行时,他们是否能够打包这些全局Node包所需的功能?
答案 0 :(得分:2)
有两种方法可以安装npm软件包:本地或全局。
要全局下载软件包,只需使用命令npm install -g
如果要将模块用作命令行工具,建议使用此方法。
您可以随时使用:
npm link (in package dir)
和npm link [<@scope>/]<pkg>[@<version>]
只会在您的磁盘上安装一次模块,并且每隔一段时间只会对该模块进行符号链接。
答案 1 :(得分:1)
即使这个帖子很旧,这里也没有提到正确的答案,所以让我为未来的读者更新这个:
是的,有些东西正好解决了您刚刚描述的问题。
它被称为 PNPM:https://pnpm.js.org/motivation
基本上它会正常执行所有 npm 命令,但使用 pnpm install
而不是 npm install
会将所有 npm 模块安装到全局文件夹中一次,然后将当前项目的 node_modules 链接到该全局位置。
所以下次另一个项目需要包 X 时,PNPM 将首先检查该包是否已经存在于全局位置,如果已经存在,它只会再次链接到该文件夹。
这样每个 npm 包只会在您的驱动器上存在一次,并且您可以防止重复。