如何在Node.js中解决“ReferenceError: primordials is not defined”错误

888

我通过 'npm install' 安装了Node.js模块,然后在命令提示符中尝试执行gulp sass-watch。之后,我收到了以下反馈。

[18:18:32] Requiring external module babel-register
fs.js:27
const { Math, Object, Reflect } = primordials;
                                  ^

ReferenceError: primordials is not defined

我以前尝试过这个gulp sass-watch命令:

npm -g install gulp-cli

如果在通过 Visual Studio 任务运行程序自动执行 gulp 任务时遇到此问题(特别是在更新 VS 后),请参见此处 - https://dev59.com/DLvpa4cB1Zd3GeqPCPoZ#72709758 - Chris Halcrow
44个回答

0

对于那些使用 Yarn 的人:

yarn global add n
n 11.15.0
yarn install # Have to install again

请不要使用短期支持的NodeJS分支(所有奇数版本号,如9和11),请使用NodeJS 10。 - user753676

0

由于我的项目使用了gulp 4版本,我需要进行以下操作来解决这个问题

  1. 删除文件夹node_modules
  2. 打开package.json并更新版本

Issue

Update

这里是我正在使用的版本细节。

Version

现在运行npm install,然后运行gulp default。错误应该已经消失了,您可能会看到:

任务未定义:仅默认。


0

我在安装npm包webshot时遇到了相同的问题。

注意:这是该软件包的已知问题,因为它在后台依赖于graceful-fs。

解决方法1:升级graceful-fs至4.x或更高版本

解决方法2:改用webshot-node https://www.npmjs.com/package/webshot-node


0

你有两个选择:

  1. 要么升级到 gulp 4,
  2. 要么降级到早期的Node.js版本。

0

对我来说,使用series()函数组合任务后问题得到了解决。

这里的任何答案都没有解决问题。


-2

对于在ADOS CI Build中出现相同错误的任何人:

当我寻求帮助时,这个问题是我找到的第一个。我有一个ADOS CI构建管道,其中第一个Node.js工具安装程序任务用于安装Node.js。然后使用npm任务安装Gulp.js(npm install -g gulp)。然后运行来自gulpfile.js的default-task的以下Gulp.js任务。其中包含一些gulp-sass内容。

当我将Node.js工具更改为安装12.x最新节点而不是旧版本,并且最新的Gulp.js版本为4.0.2时,结果与问题描述中相同的错误。

在这种情况下对我有效的是将Node.js降级到最新的11.x版本,正如Alphonse R. Dsouza和Aymen Yaseen已经建议的那样。但是,在这种情况下,无需使用他们建议的任何命令,而只需将Node.js工具安装程序版本规范设置为11.x的最新Node.js版本即可。

Enter image description here

安装并运行的 Node.js 版本是 11.15.0。我不需要降级 Gulp.js。


-2

我通过将 Node.js 版本从 12.14.0 降级到 10.18.0 并重新安装 node_modules 来解决了这个问题。


-2

我在使用 Node.js 12/13 和 Gulp.js 3 时也遇到了错误。降级到 Node.js 11 可以解决该问题。


-2

当我们使用 s3 NPM 包时,也会遇到这个错误。因此问题出在 graceful-fs 包上 - 我们需要更新它。在 4.2.3 上它可以正常工作。

所以只需查看日志跟踪显示的 NPM 包,然后相应地将 graceful-fs 更新到 4.2.3。


-2

解决问题的步骤:

我通过以下步骤解决了问题:

  1. 安装 NVM
  2. 使用命令 nvm install lts/dubnium 安装 lts/dubnium
  3. 使用命令 nvm use lts/dubnium 使用 lts/dubnium

现在您可以使用 gulp deploy。


1
这是对@kevink的答案的不准确的复制。 - Z4-

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接