【问题标题】:npm run gulp primordials not definednpm run gulp primordials 未定义
【发布时间】:2021-12-16 09:04:54
【问题描述】:

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

> 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

有什么建议吗??? ?

【问题讨论】:

    标签: node.js npm gulp npm-run


    【解决方案1】:

    原始元素由 Node.js 内部模块使用,最终用户脚本无法访问。 (这就是他们存在的全部意义。否则,您可能会修改 Object.prototype 并最终影响 Node.js 内部,从而导致奇怪的崩溃之类的事情。)

    出现此错误的模块是natives 模块。 page for the package 说:

    此模块依赖于 Node.js 的内部结构,并且会在某些时候中断。不要用,更新到graceful-fs@4.x。

    听起来好像它已经坏了。使用npm ls natives 找出它在使用什么。 (运行该命令时,您可能需要位于 /Applications/MAMP/htdocs/wordpress/wp-content/themes/theming-main 目录中。)从那里,您可以尝试找出如何摆脱它。

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

    【讨论】:

    • 感谢您的帮助,对我来说这是版本不匹配的问题。我也有 2 个 NodeJS 安装路径,这让事情变得很糟糕。所以我将它们全部卸载,从头开始并使用 brew 重新安装。然后检查版本是否都兼容。现在它可以工作了,我可以继续开发了:)截至今天,我正在运行 Node v17.0.1 Npm v8.1.0 Gulp cli v2.3.0
    【解决方案2】:

    问题在于版本不匹配。我也有 2 个 NodeJS 安装路径,这很糟糕。

    我把它们都卸载了,从头开始用brew重新安装。

    然后检查版本是否都兼容。

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

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

    【讨论】: