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

其他回答

我建议您首先确保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的旧版本(少于4)。

不建议降级Node.js和其他依赖项。我通过更新package.json文件,获取所有依赖项的最新版本来解决这个问题。为此,我使用npm检查更新。它是一个用所有依赖项的最新版本更新package.json的模块。

参考:https://www.npmjs.com/package/npm-check-updates

npm i -g npm-check-updates
ncu -u
npm install

在大多数情况下,我们必须更新gulpfile.js,如下所示:

参考:Gulp 4:新的任务执行系统-Gulp.parallel和gull.series,Migration

之前:

gulp.task(
    'sass', function () {
        return gulp.src([sourcePath + '/sass/**/*.scss', "!" + sourcePath + "/sass/**/_*.scss"])

            ....
    }
);

Other configuration...

gulp.task(
    'watch', function () {
        gulp.watch(sourcePath + '/sass/**/*.scss', ['sass']);
    }
);

之后:

gulp.task('sass', gulp.series(function(done) {
    return gulp.src([sourcePath + '/sass/**/*.scss', "!" + sourcePath + "/sass/**/_*.scss"])

            ...

    done();
}));

Other config...

gulp.task(
    'watch', function () {
        gulp.watch(sourcePath + '/sass/**/*.scss', gulp.series('sass'));
    }
);

我也犯了同样的错误。当我更新了所有包,然后在package.json中提到了与本地工作系统相同的Node.js引擎版本和npm版本时,我终于解决了这个问题。

 "engines": {
    "node": "10.15.3",
    "npm": "6.9.0"
 }

我在Heroku上部署时遇到了这个错误。

更多信息,请查看Heroku支持。

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

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

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

试试看:

npm install -g n

sudo n 11.15.0