Javascript 什么';找出依赖Node.js的模块崩溃的方法是什么?

Javascript 什么';找出依赖Node.js的模块崩溃的方法是什么?,javascript,node.js,Javascript,Node.js,我的Node.js应用程序以前运行得很好。我把这个Node.js应用程序放在一边几个月,然后回来在一台新机器上继续开发它。错误发生了!!! 错误信息如下: fs.js:27 const { Math, Object } = primordials; ^ ReferenceError: primordials is not defined at fs.js:27:26 at req_ (/Users/xiaoningchang/D

我的Node.js应用程序以前运行得很好。我把这个Node.js应用程序放在一边几个月,然后回来在一台新机器上继续开发它。错误发生了!!! 错误信息如下:

fs.js:27
const { Math, Object } = primordials;
                         ^

ReferenceError: primordials is not defined
    at fs.js:27:26
    at req_ (/Users/xiaoningchang/Documents/Code/udfinder/avdetector/node_modules/natives/index.js:143:24)
    at Object.req [as require] (/Users/xiaoningchang/Documents/Code/udfinder/avdetector/node_modules/natives/index.js:55:10)
    at Object.<anonymous> (/Users/xiaoningchang/Documents/Code/udfinder/avdetector/node_modules/graceful-ncp/node_modules/graceful-fs/fs.js:1:37)
    at Module._compile (internal/modules/cjs/loader.js:936:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:947:10)
    at Module.load (internal/modules/cjs/loader.js:790:32)
    at Function.Module._load (internal/modules/cjs/loader.js:703:12)
    at Module.require (internal/modules/cjs/loader.js:830:19)
    at require (internal/modules/cjs/helpers.js:68:18)
依赖模块
本地人
中似乎有问题。但是,根据
package.json
文件,应用程序不依赖
本地人
模块。此外,在
natives
模块的
index.js
文件中没有名为
primordials
的变量

补充资料: Node.js版本:12.10.0; npm版本:6.11.3; 我还遇到了一个错误,
gyp ERR!当我安装npm时,生成错误
。我使用命令
npm audit fix
来修复它。这与我的问题有关吗


有人能帮我解决这个问题吗?我是Node.js新手,没有多少调试自己代码的经验。非常感谢。

本地npm软件包已被弃用:

如果你翻开它的页面,他们警告说这个包可能会在未来的节点版本中被破坏——他们严肃地建议首先也不要使用这个包。我想可能是不同的操作系统或节点版本造成的。您的
package.json
中没有将本机作为依赖项列出,这意味着至少有一个依赖项使用本机-或者某个依赖项的依赖项,等等…-

检查哪些依赖项正在使用本机的一种方法是运行:

$npm ls本地人

我在本地机器MacOS 10中的一个项目中安装了您的依赖项并运行了它,而且似乎
优雅的fs
正在使用
本地人
graceful fs
graceful ncp
的依赖项,它列在您的package.json中

当我安装
$npm
时,我收到了几个警告,其中一个警告是关于将
优雅fs
升级到版本4,以避免将来升级节点版本时出现错误

优雅的ncp
软件包目前在3.0.0版上,因此我将
package.json
中的版本升级到3.0.0。然后
$rm-rf node_模块和npm i


在此之后,
$npm ls natives
将产生空值,这意味着升级
优雅的ncp
版本将解决您的问题-当然,您可能需要添加代码更改以避免破坏
优雅的ncp
的更改

新机器的操作系统与旧机器相同?它是服务器机器,还是本地开发机器?您是否尝试
rm-rf节点_模块;npm安装完成了吗?节点版本相同?您是否尝试过像
npm i
和更新节点和npm这样的通用解决方案?似乎一个本机模块正试图从一个未声明的变量中提取一个属性,这显然不是您的问题。@Sergeon操作系统则不同。我不确定node的版本是否相同。我只是
rm-rf结节_模块
npm安装
,但同样的错误再次出现。@MohammedMortaga。我只是
rm-rf节点\ U模块
npm I
。但同样的问题再次出现。@Sergeon我只是检查了我以前机器上Node的版本,即11.6.0。node的验证与我的问题有关吗?你的建议救了我!非常感谢!
{
  "name": "meminsight",
  "version": "0.0.1",
  "description": "JavaScript memory analyses",
  "repository": {
    "type": "git",
    "url": "https://github.com/Samsung/meminsight.git"
  },
  "dependencies": {
    "acorn": "3.1.0",
    "argparse": "0.1.15",
    "aspect-js": "^1.0.3",
    "callsites": "^2.0.0",
    "chai": "^4.1.2",
    "codemirror": "5.1.0",
    "cover": "0.2.9",
    "datatables": "^1.10.18",
    "ejs": "1.0.0",
    "escope": "1.0.1",
    "esotope": "1.4.5",
    "estraverse": "4.0.0",
    "execSync": "1.0.2",
    "expect.js": "^0.3.1",
    "express": "3.4.8",
    "fast-stats": "0.0.2",
    "finalhandler": "0.0.3",
    "graceful-ncp": "2.0.0",
    "grunt": "0.4.5",
    "jquery": "2.1.3",
    "jsonparse": "0.0.6",
    "line-by-line": "0.1.3",
    "line-reader": "^0.4.0",
    "log4js": "^2.3.11",
    "mkdirp": "0.5.0",
    "mocha": "^1.20.1",
    "multi-key-cache": "^1.0.2",
    "parse5": "2.1.5",
    "q": "1.2.0",
    "rewriting-proxy": "0.5.1",
    "rimraf": "2.2.8",
    "serve-static": "^1.14.1",
    "sloc": "^0.2.1",
    "temp": "0.8.1",
    "websocket": "^1.0.30",
    "wrench": "1.5.8"
  },
  "scripts": {
    "test": "(cat test/testSuite.txt | sed 's/^/test\\//' | xargs ./node_modules/.bin/mocha --reporter spec --harmony) && cd lifetime-analysis && ./gradlew cleanTest test && cd ..",
    "build": "grunt typescript"
  },
  "devDependencies": {
    "grunt-cli": "0.1.13",
    "grunt-exec": "^0.4.6",
    "grunt-simple-mocha": "0.4.0",
    "grunt-typescript": "^0.8.0",
    "jasmine": "^2.8.0"
  },
  "license": "Apache-2.0"
}