npm 运行 gulp 原始数未定义

npm run gulp primordials not defined

我正在尝试 运行 npm run gulp 并且我想出了这个 primordials is not defined 错误(我还按照建议添加了 npm-shrinkwrap.json 文件在 运行ning npm install 之后得到更新,但它没有修复我的 primordials is not define 错误):

> gulp-tutorial@1.0.0 gulp
> gulp

fs.js:47
} = primordials;
    ^

ReferenceError: primordials is not defined
    at fs.js:47:5
    at req_ (/Applications/MAMP/htdocs/wordpress/wp-content/themes/theming-main/node_modules/natives/index.js:143:24)
    at Object.req [as require] (/Applications/MAMP/htdocs/wordpress/wp-content/themes/theming-main/node_modules/natives/index.js:55:10)
    at Object.<anonymous> (/Applications/MAMP/htdocs/wordpress/wp-content/themes/theming-main/node_modules/vinyl-fs/node_modules/graceful-fs/fs.js:1:37)
    at Module._compile (node:internal/modules/cjs/loader:1095:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1147:10)
    at Module.load (node:internal/modules/cjs/loader:975:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Module.require (node:internal/modules/cjs/loader:999:19)
    at require (node:internal/modules/cjs/helpers:102:18)

Node.js v17.0.1

有什么建议吗?

Primordials 由 Node.js 内部模块使用,最终用户脚本无法访问。 (这是他们存在的全部意义。否则,您可以修改 Object.prototype 并最终影响 Node.js 内部结构,导致奇怪的崩溃和类似的事情。)

给你这个错误的模块是 natives 模块。 page for the package 表示:

This module relies on Node.js's internals and will break at some point. Do not use it, and update to graceful-fs@4.x.

听起来它就在那个时候坏掉了。使用 npm ls natives 找出正在使用它的人。 (当您 运行 命令时,您可能需要在 /Applications/MAMP/htdocs/wordpress/wp-content/themes/theming-main 目录中。)从那里,您可以尝试弄清楚如何摆脱它。

另一种可能性是尝试降级到 Node.js 的早期版本,看看它是否适用于该版本。

问题是版本不匹配。我还有 2 个 NodeJS 安装路径,那是把事情搞砸了。

我都卸载了,从头开始用brew重装

然后检查版本是否全部兼容。

我还必须安装 node-sass 并参考此兼容性 table 以获得正确的版本 - https://github.com/sass/node-sass#node-version-support-policy

现在可以正常工作了,我可以继续开发 :) 从今天开始我 运行 Node v17.0.1 Npm v8.1.0 Gulp cli v2.3.0