我已经通过“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稳定版为我解决了这个问题,因为它发生在我升级到Node.js12之后:

sudo n 10.16.0

其他回答

简单优雅的解决方案

只需遵循以下步骤。它与多次运行的npm安装或安装任何其他模块,甚至将项目发布到artifactory,都能完美配合。

在package.json所在的目录中,创建一个npm-shrinkwrap.json文件,其中包含以下内容:

{
  "dependencies": {
    "graceful-fs": {
        "version": "4.2.2"
     }
  }
}

运行npm install,不用担心,它会用一堆内容更新npm-shrinkwrap.json。让我们通过更新package.json脚本选项来消除这些更新。

"scripts": {
    "preshrinkwrap": "git checkout -- npm-shrinkwrap.json",
    "postshrinkwrap": "git checkout -- npm-shrinkwrap.json"
}

现在,您可以运行npm安装程序,您的npm-shrinkwrap.json将完好无损,并将永远工作。

解决问题的步骤:

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

安装NVM使用命令nvm install lts/dubnium安装lts/dubinium使用命令nvm install lts/dubnium使用lts/dubinium

现在你可以大口大口地展开了。

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

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

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

如果问题不是由gulp引起的,请检查解压缩的npm模块。自从上次更新以来,已经有六年了。它不适用于Node.js>v11。

试试看:

npm install -g n

sudo n 11.15.0

看起来您已经将nodejs的版本升级到+12,并且仍然使用gulf 3.9.1

您可以使用以下解决方案之一

将您的glup版本升级到+4或者简单地使用NVM节点版本管理器在同一台机器上运行多个nodejs版本。