Javascript 避免为所有项目反复下载节点JS模块
我正在学习NodeJS和Electron应用程序开发,目前我使用的每个示例应用程序都让我运行命令Javascript 避免为所有项目反复下载节点JS模块,javascript,node.js,windows,npm,Javascript,Node.js,Windows,Npm,我正在学习NodeJS和Electron应用程序开发,目前我使用的每个示例应用程序都让我运行命令npm install,这将导致node_模块下载到项目文件夹中。这导致了大量的磁盘使用,因为许多应用程序反复使用相同的节点模块 有没有办法将所有项目所需的所有节点模块安装到一个中心位置,并使它们都使用这1个模块源 更新 我的另一个担忧。如果我正在构建的Electron应用程序打包为可安装的.exe文件。当应用程序在另一台用户PC上运行时,他们是否能够从这些全局节点软件包中打包所需的功能?有两种安装
npm install
,这将导致node_模块下载到项目文件夹中。这导致了大量的磁盘使用,因为许多应用程序反复使用相同的节点模块
有没有办法将所有项目所需的所有节点模块安装到一个中心位置,并使它们都使用这1个模块源
更新
我的另一个担忧。如果我正在构建的Electron应用程序打包为可安装的.exe文件。当应用程序在另一台用户PC上运行时,他们是否能够从这些全局节点软件包中打包所需的功能?有两种安装npm软件包的方法:本地或全局。 要全局下载软件包,只需使用命令
npm install-g
如果要将模块用作命令行工具,建议使用此选项。
更新 您始终可以使用:
npm-link(在package-dir中)
和npm-link[/][@]
将只在您的磁盘上安装一次模块,并且每隔一次额外的时间只会将符号链接到该模块。即使此线程很旧,这里也没有提到正确的答案,因此让我更新此线程以供将来的读者使用:
是的,有一件事正好解决了你刚才描述的问题
它叫PNPM:
基本上,它会正常执行所有npm命令,但使用pnpm install
而不是npm install
将所有npm模块安装到全局文件夹中一次,然后将当前项目的节点模块链接到该全局位置
因此,下次其他项目需要包X时,PNPM将首先检查该包是否已存在于全局位置,如果该包已存在,则只会再次链接到该文件夹
这样,每个npm软件包在您的驱动器上只存在一次,您可以避免重复。@Davidlrnt我刚刚测试了在两个单独的Electron project文件夹上运行
bower install jquery
,而烦人文件夹最终下载了一份jquery.js。有没有办法让它全球化。我正在学习/玩JS Electron应用程序,每个库安装1个可供任何应用程序使用。我设置的每个项目都有50mb的节点模块,在每个项目中,大多数模块都是彼此使用的相同模块。我不确定这是否被视为命令行使用?模块包含在项目JS文件中,然后我在项目上运行npm start
,启动演示应用程序windows@JasonDavis现在,electron快速启动节点_模块为123MB,带有electron Forge的空ES6/7项目为315MB。。。您是否找到了全局移动节点_模块的方法?