gpt4 book ai didi

node.js - NPM v5.0.1 升级后找不到模块 'fs.realpath'

转载 作者:搜寻专家 更新时间:2023-11-01 00:12:26 24 4
gpt4 key购买 nike

我最近将 npm 更新到 v5.0.1(从 4 的最后一个版本),它通常是灾难性的。

无论如何,我被困在这一点上。我尝试运行的任何 node.js 应用程序都可以正常完成“npm 安装”,但在启动时会输出:

module.js:471
throw err;
^

Error: Cannot find module 'fs.realpath'
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/home/user/back/node_modules/glob/glob.js:44:10)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
npm ERR! code ELIFECYCLE
npm ERR! errno 1

请注意,同一个应用程序在 macOs 上运行良好,但在 Ubuntu 16.04.2 LTS 上会出现上述错误。

我已经删除了两台机器上的 node_modules 目录并重新运行,macOs 工作正常,Ubuntu 失败。

node -v: v6.10.3

...对于两台机器。

npm -v: 5.0.1

它还建议我查看日志 (/home/user/.npm/_logs/2017-06-02T23_19_59_859Z-debug.log),但它提供的信息更少。这是那里报告的错误:

13 info lifecycle back@0.0.1~start: Failed to exec start script
14 verbose stack Error: back@0.0.1 start: `tsc && npm run moveassets && NODE_ENV=production forever start -a -l back.log -e back-err.log ./build/www.js `
14 verbose stack Exit status 1
14 verbose stack at EventEmitter.<anonymous> (/usr/lib/node_modules/npm/lib/utils/lifecycle.js:283:16)
14 verbose stack at emitTwo (events.js:106:13)
14 verbose stack at EventEmitter.emit (events.js:191:7)
14 verbose stack at ChildProcess.<anonymous> (/usr/lib/node_modules/npm/lib/utils/spawn.js:40:14)
14 verbose stack at emitTwo (events.js:106:13)
14 verbose stack at ChildProcess.emit (events.js:191:7)
14 verbose stack at maybeClose (internal/child_process.js:886:16)
14 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)

请注意,在将 NPM 升级到 v5.0.1 之前,它在两台机器上都运行良好。

更新问题已隔离:

这似乎不是操作系统版本,而是 macOS 正在生成 package-lock.json 文件,而 Ubuntu 正在使用它并基于它进行安装。如下所述,如果您删除文件和 rm -r node_modules 文件夹,您可以安装并且一切正常(但显然您不会获得版本锁定的好处)。

我认为这只是当前版本 NPM 的一个错误。很公平,这是一个很大的变化,完成后将成为一个很好的功能。

最佳答案

如果你

rm -rf node_modules

然后做一个

npm install

再次,它有效。

注意:我还删除了 npm 锁定文件。

更新:
(考虑到评论)

rm -rf node_modules
rm package-lock.json
npm install

关于node.js - NPM v5.0.1 升级后找不到模块 'fs.realpath',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44338716/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com