我已经通过“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修复了这个问题→ Node.js。

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

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

其他回答

我建议您首先确保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和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的早期版本。

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

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

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

检查Node.js版本:

 node --version

检查吞咽版本:

gulp -v

如果Node.js>=12,gulf<=3,请执行以下操作之一:

升级gulf

sudo npm install -g gulp

降级节点

sudo npm install -g n
sudo n 11.15.0

如何使用npm升级(或降级)Node.js

简单优雅的解决方案

只需遵循以下步骤。它与多次运行的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将完好无损,并将永远工作。