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

当前回答

我使用的是Node.js v12.13.1,所以我已经降级到v10.19.0。之后一切都很顺利。

其他回答

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

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

npm install gulp@^3.9.1

我在Node.js 12/13和Gulp.js 3上也遇到了一个错误。移动到Node.js 11是有效的。

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

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

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

如果在使用最新的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

该问题仅在Visual Studio的任务运行器资源管理器中出现,而不是从命令行或PowerShell运行时出现。

我意识到VS忽略了我用NVM设置的Node版本。

这篇文章给出了答案:配置Visual Studio的Task Runner Explorer使用哪个NPM?通过将PATH变量设置为比VS中的外部工具更高的优先级,它使用的是NVM设置的Node版本,而不是与VS一起安装的版本。