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

当前回答

我已经尝试了很多建议来解决我的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^4.0时保持Node.js v12,请执行以下步骤:

使用以下命令更新命令行界面(仅供预防):

npm i gulp-cli -g

添加/更新package.json文件的gulpunderdependencies部分

"dependencies": {
  "gulp": "^4.0.0"
}

删除package-lock.json文件。

删除node_modules文件夹。

最后,运行npm i升级并重新创建一个全新的node_modules文件夹和package-lock.json文件,其中包含Gulp^4.0的正确参数:

npm i

注意,Gulp.js 4.0引入了series()和parallel()方法来组合任务,而不是Gulp 3中使用的数组方法,因此您可能会或可能不会在旧的gulpfile.js脚本中遇到错误。

为了了解更多关于应用这些新功能的信息,本网站对其做了充分的介绍:如何迁移到Gulp.js 4.0

我也犯了同样的错误。我怀疑你在使用Node.js 12和Gulp.js 3。这种组合不起作用:Gulp.js 3在Node.js 12#2324上被破坏

1月份以前的解决方法也不起作用:更新到Node.js 11.0.0后,运行Gulp.js退出时出现“ReferenceError:internalBinding未定义”#2246

解决方案:要么升级到Gulp.js 4,要么降级到Node.js的早期版本。

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

我在Windows 10上通过从“添加或删除程序”卸载Node.js修复了这个问题→ Node.js。

然后我从https://nodejs.org/download/release/v11.15.0/

如果运行的是Windows 64位,请选择node-v11.15.0-x64.msi。

我也面临同样的问题。我所尝试的以及对我有用的:

检查Node.js和Gulp.js的版本(Node.js v12和Gulp.js低于v4的组合不起作用)我通过以下方式降级了NPM版本:sudo NPM安装-g n第10.16.0节

它工作得很好。然后,只需遵循控制台的说明即可。