我收到错误:fs.js:36 = primordials; ^ ReferenceError: 未定义原语
Posted
技术标签:
【中文标题】我收到错误:fs.js:36 = primordials; ^ ReferenceError: 未定义原语【英文标题】:I get the error: fs.js:36 = primordials; ^ ReferenceError: primordials is not defined我收到错误:fs.js:36 = primordials; ^ ReferenceError: 未定义原语 【发布时间】:2020-12-21 22:58:07 【问题描述】:我收到以下错误,我的节点版本是:12.18 当我运行 npm start 开始我的项目时
fs.js:36
= primordials;
^
ReferenceError: primordials is not defined
at fs.js:36:5
有人回答 gulp 和节点 12 的问题 (How to fix ReferenceError: primordials is not defined in node)
但我没有在我的项目中使用 gulp,也没有安装 gulp。
下面是我的 package.json
"name":"myapp",
"version":"1.0.0",
"description":"",
"scripts":
"start":"node server.js",
"test":"echo \"Error: no test specified\" && exit 1"
,
"author":"MJX",
"license":"ISC",
"dependencies":
"body-parser":"^1.19.0",
"express":"^4.17.1",
"express-handlebars":"^2.0.1",
"mssql":"^6.2.1",
"mysql":"^2.18.1",
"nodemon":"^1.19.4",
"npm":"^5.10.0"
,
"devDependencies":
"handlebars-helper-css":"^0.1.0"
还有我的 server.js:
var express = require("express");
var bodyParser = require("body-parser");
var PORT = process.env.PORT || 4300;
var app = express();
app.use(express.static("public"));
app.use(bodyParser.urlencoded( extended: true ));
app.use(bodyParser.json());
var exphbs = require("express-handlebars");
app.engine("handlebars", exphbs( defaultLayout: "main" ));
app.set("view engine", "handlebars");
var routes = require("./controllers/burgersController.js");
app.use(routes);
app.listen(PORT, function()
console.log("App now listening at localhost:" + PORT);
);
【问题讨论】:
当我运行 npm start 时 我更新了我的问题,还添加了 server.js 详细信息found 149 vulnerabilities (81 low, 15 moderate, 52 high, 1 critical)
不关心你吗?刚刚安装了节点 12.18.0 并使用您的确切 package.json
运行 npm install
。更新你的依赖...
【参考方案1】:
如果您查看未提供的错误消息中的堆栈跟踪:
ReferenceError: primordials is not defined
at fs.js:35:5
at req_ (C:\Users\Patrick\Desktop\test\node_modules\natives\index.js:143:24)
at Object.req [as require] (C:\Users\Patrick\Desktop\test\node_modules\natives\index.js:55:10)
at Object.<anonymous> (C:\Users\Patrick\Desktop\test\node_modules\graceful-fs\fs.js:1:37)
at Module._compile (internal/modules/cjs/loader.js:1138:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
at Module.load (internal/modules/cjs/loader.js:986:32)
at Function.Module._load (internal/modules/cjs/loader.js:879:14)
at Module.require (internal/modules/cjs/loader.js:1026:19)
at require (internal/modules/cjs/helpers.js:72:18)
您会发现错误源自natives
模块。运行npm ls natives
,可以判断是express-handlebars
的子依赖:
myapp@1.0.0 C:\Users\Patrick\Desktop\test
`-- express-handlebars@2.0.1
`-- graceful-fs@3.0.12
`-- natives@1.1.6
您的 express-handlebars
依赖关系已经过时了。将其从 ^2.0.1
更新为 ^5.1.0
可以解决您的问题,但您真的不应该忽略 audit messages 的其余部分:
found 146 vulnerabilities (80 low, 15 moderate, 51 high)
run `npm audit fix` to fix them, or `npm audit` for details
【讨论】:
我的问题有所不同,但是在运行 npm ls graceful-fs 之后,我发现所有其他依赖于这个的包。我看到他们中的大多数都需要优雅的 fs 版本 3,但是这个版本在 win 10 上与较新的 nodejs 有问题。所以手动通过 package-lock.json 和 npm-shrinkwrap.json 并更改所需的优雅 fs 版本和然后运行 npm audit fix --force 为我完成了这项工作。我已经阅读这个问题几个小时了,只有这对我有用。【参考方案2】:在项目根文件夹中创建一个名为npm-shrinkwrap.json
的文件。
将以下代码添加到文件中:
"dependencies":
"graceful-fs":
"version": "4.2.2"
【讨论】:
以上是关于我收到错误:fs.js:36 = primordials; ^ ReferenceError: 未定义原语的主要内容,如果未能解决你的问题,请参考以下文章
我收到此错误 NSURLErrorDomain 错误 -999
每当我使用“require”这个词时,我都会收到一个错误,如果我尝试使用 relative_require,我也会收到一个错误