我有一个Electron应用程序,我试图安装节点模块。当我运行npm install
时,它会创建node_modules
文件夹,但所有模块都会进入名为.staging
的子文件夹。每个模块还附加-xxxxx
,其中x是一些随机字母数字。
我创造的其他电子应用程序从未这样做过。所有节点模块都位于node_modules
的根目录中,并且不会附加-xxxxx
。
知道为什么会这样吗?
答案 0 :(得分:22)
这只会在下载和安装模块之前暂时发生。 Node似乎这样做,所以它可以将你正在安装的所有模块中的常见子模块放在一起,这样就可以更好地构建节点模块文件夹(主要用于windows用户)。
如果在npm安装完成后发生这种情况,则可能是您的节点安装有问题或安装中的某些内容失败。
答案 1 :(得分:7)
我也遇到了同样的问题,我尝试了以下步骤:
尝试使用以下命令安装它(应该在开放网络中)
npm install
注意: - “.staging”表示,这些依赖项正在下载,因此对于临时基础,它将所有这些依赖项保留在“.staging”文件夹下。一旦所有内容都正确下载,它将只在node_modules下显示它们。
我希望这会奏效。
答案 2 :(得分:1)
我的系统上安装了2个版本的节点。
nodejs v4.2
和node v8.6
我认为这可能会有冲突,所以我使用以下命令删除了nodejs v4.2
。
sudo apt-get remove nodejs
并将路径与
相关联sudo ln -s /usr/bin/node /usr/bin/nodejs
我再次运行npm install
并修复了
答案 3 :(得分:1)
.staging 是一个临时的 npm 文件夹,模块在下载的时候临时保存在里面,如果 package.json 下载还没有完成,则创建的文件夹会保留,直到安装完成。
问题可能是硬盘空间不足。
答案 4 :(得分:0)
我遇到了类似的问题,并尝试了以上答案,但对我没有用; 我按照以下步骤解决了此问题-
1。npm audit
通过运行npm审核,我得到了待安装的软件包列表-
2。npm i packagename
从列表中一一安装一个或两个软件包后,我使用了
3。npm install
这时安装顺利进行,没有任何滞后或挂断。希望对遇到类似问题的人有所帮助:)。
答案 5 :(得分:0)
删除package.lock.json
删除node_modules
运行npm update
答案 6 :(得分:0)
如果您有一台Windows计算机,但您没有该计算机的管理员权限。
尝试删除node_modules并使用'npm install'
从命令行以
“管理员”
有效!
无论如何,这归结为一个开放的网络事物;)
答案 7 :(得分:0)
如果要使用CI / CD自动安装node_modules,则应签出npm ci。另外请查看this Stackoverflow问题。
npm ci
文档指出了npm install
和npm ci
之间的区别。
package-lock.json
或npm-shrinkwrap.json
package.json
中的依赖项不匹配,则npm ci
将退出并显示错误,而不是更新软件包锁。npm ci
一次只能安装整个项目:此命令不能添加单个依赖项。node_modules
已经存在,它将在npm ci
开始安装之前被自动删除。很好,因为它可以避免执行类似rm -rf node_modules
的操作。package.json
或任何软件包锁:安装实际上是冻结的。答案 8 :(得分:0)
这对我有用 我将项目从C驱动器移至其他驱动器并运行以下命令 如果正在运行此项目和现有项目,请备份较旧的节点模块
npm clear cache --force
npm update