我已经通过“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

我在大口大口看之前已经试过了:

npm -g install gulp-cli

当前回答

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

这个问题是我在寻求帮助时发现的第一个问题。我有一个ADOS CI构建管道,其中第一个Node.js工具安装程序任务用于安装Node.js。然后,npm任务用于安装Gulp.js(npm install-g gulf)。然后,下面的Gulp.js任务运行gulpfile.js中的默认任务。

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

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

安装并运行的Node.js的确切版本是11.15.0。我不必降级Gulp.js。

其他回答

降级到Node.js稳定版为我解决了这个问题,因为它发生在我升级到Node.js12之后:

sudo n 10.16.0

当我们使用s3 NPM包时,也会出现此错误。所以问题出在优雅的fs包上——我们需要更新它。它在4.2.3中运行良好。

所以只需查看日志跟踪中显示的NPM包,并根据4.2.3更新优雅的fs。

我已经尝试了很多建议来解决我的Windows 10机器上的现有项目的这个问题,并最终按照这些步骤来解决它;

从“添加或删除程序”中卸载Node.js。启动一个新的命令提示符,键入gulp-v,然后键入node-v,以检查它是否已完全卸载。下载并安装Node.js v10.16.0-不是最新的,因为据我所见,最新的Node&gump组合导致了问题。在安装过程中,我没有像往常一样更改安装路径(C:\Program Files\nodejs)。打开一个新的命令提示符,转到项目的目录,在该目录中获得gulpfile.js,然后开始gulph,如图所示。

请注意,有时当我在git分支之间切换时,我可能需要关闭Visual Studio并再次以管理员身份运行它,以便看到此解决方案再次运行。

据我所知,在我为新项目安装了Node.js的最新推荐版本(12.18.4)后,这个问题就开始出现了,我只是在现有web项目上没有反映某些FE更改时才意识到这一点。

更新:今天,我在新电脑上设置一个现有项目时遇到了同样的问题,我做了同样的步骤+转到我有gulf文件的目录,然后运行npm安装。

安装gulp并将Node.js版本添加到package.json文件中,如下所示:

{
  "dependencies": {
    "node":  "^10.16.3"
  }
}

我建议您首先确保NPM安装不是您的问题。然后降级Node.js和Gulp.js版本。我使用了Node.js 10.16.1和Gulp.js 3.9.1。

要降级Gulp.js安装,您可以尝试:

npm install gulp@^3.9.1