我已经通过“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的新版本(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'));
    }
);

其他回答

升级到4.0.1并确保迁移https://fettblog.eu/gulp-4-parallel-and-series/#migration

使用NVM管理您正在使用的Node.js版本,运行以下命令对我有效:

cd /to/your/project/
nvm install lts/dubnium
nvm use lts/dubnium
yarn upgrade # or `npm install`

我在安装npm包webshot时遇到了同样的问题。

注意:这是该软件包的一个已知问题,因为它依赖于幕后优雅的fs。

修复:1。将优雅fs升级到4.x或更高版本

修复:2。改用webshot节点https://www.npmjs.com/package/webshot-node

Gulp对Node.js版本11和更高版本提出了问题。卸载当前Node.js版本并重新安装v10.15.1版本。这是该版本的链接。这对我有帮助,也会解决你的问题。

https://nodejs.org/download/release/v10.15.1/

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

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

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