npm 访问循环依赖内模块导出的不存在属性“padLevels”

wgxvkvu9  于 2022-12-29  发布在  其他
关注(0)|答案(7)|浏览(612)

我只是在唱一个又一个。
它不仅表示9.0.0,而且表示:

(node:18392) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)

当我> node --trace-warnings ...时,我得到了这个:

internal/modules/cjs/loader.js:883
  throw err;
  ^

Error: Cannot find module 'C:\Users\twori\...'
[90m    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)[39m
[90m    at Function.Module._load (internal/modules/cjs/loader.js:725:27)[39m
[90m    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)[39m
[90m    at internal/main/run_main_module.js:17:47[39m {
  code: [32m'MODULE_NOT_FOUND'[39m,
  requireStack: []
}

我只安装和检查版本。为什么phonegap模块抛出这个错误?
我的老师和其他学生对此都很赞同,但只有我无能为力。

mbyulnm0

mbyulnm01#

已解决根本原因

在循环依赖项内导出

👆 这句话给了我解决同样问题的暗示,似乎较新的NodeJS版本不再允许循环依赖。
例如-有两个文件- FileA.js和FileB.js
其中文件A.js具有

const FileB = require("FileB");

并且文件B.js具有

const FileA = require("FileA");

通过修改FileA.js或FileB.js删除其中一个循环依赖项后,问题得到了解决!

tyg4sfes

tyg4sfes2#

节点版本太高了,之前用的是最新的14+版本,切换回12版本后就没有这个问题了。
Mac命令

sudo n 12.0.0
bfnvny8b

bfnvny8b3#

我发现这种安排在错误中没有任何影响,当我在另一个文件中调用函数时,我调整了Javascript解构,它神奇地解决了问题。
我只是更改了从Main.js导出函数的方式
发件人:

module.exports = { Scan };

致:

exports.Scan = Scan

在Event.js中,我可以像这样访问文件

const main = require("./Main.js");
let result = main.Scan();

这解决了我的问题,我希望它能帮助另一个开发人员😎

0tdrvxhp

0tdrvxhp4#

在我将节点从版本12更新到版本14后,我也面临相同的警告。在我的情况下,此警告是由于较旧版本的surge而出现的。更新surge后,警告消失了。如果您的系统中安装了surge,请将其更新到最新版本。您可以运行以下命令将surge更新到最新版本:

sudo npm i -g surge
yizd12fk

yizd12fk5#

此问题通常是由于您使用的软件包或SDK不兼容造成的。最好执行npm update并更新您可能正在使用的任何旧版本SDK。有时,使用--force选项强制更新可能有助于在现有库上使用npm install

2izufjch

2izufjch6#

在npm更新之后,相同的案例将解析enter image description here

vs91vp4v

vs91vp4v7#

如果有人正在查看此线程以解决给定的错误,我的问题是我没有在构建之前更新生产服务器上的.env文件,这导致新包抛出错误。

相关问题