当我将 jsonwebtoken 导入到我的 React 项目中时,我得到
Uncaught TypeError: Buffer2 is undefined
。
import jwt from jsonwebtoken
和import {decode} from 'jsonwebtoken'
都会引发错误。
我正在使用 jsonwebtoken v8.5.1。 我使用 vite v2.7.2 作为我的构建工具。
可能是什么导致了这个问题?
堆栈跟踪
Uncaught TypeError: Buffer2 is undefined
js index.js:11
__require chunk-ESTXZSVW.js:12
js sign-stream.js:2
__require chunk-ESTXZSVW.js:12
js index.js:2
__require chunk-ESTXZSVW.js:12
js decode.js:1
__require chunk-ESTXZSVW.js:12
js index.js:2
__require chunk-ESTXZSVW.js:12
<anonymous> jsonwebtoken:1
index.js:11:4
js index.js:11
__require chunk-ESTXZSVW.js:12
js sign-stream.js:2
__require chunk-ESTXZSVW.js:12
js index.js:2
__require chunk-ESTXZSVW.js:12
js decode.js:1
__require chunk-ESTXZSVW.js:12
js index.js:2
__require chunk-ESTXZSVW.js:12
<anonymous> jsonwebtoken:1
InnerModuleEvaluation self-hosted:2374
InnerModuleEvaluation self-hosted:2374
InnerModuleEvaluation self-hosted:2374
evaluation self-hosted:2335
问题在于 Webpack 放弃了对 Polyfill 的支持。我发现它的唯一原因是因为我在
create-react-app
中重新创建了该项目,它向我显示了一条非常有用的错误消息。 Vite 刚刚给我看了一个空白页。
更多详细信息:https://webpack.js.org/blog/2020-10-10-webpack-5-release/#automatic-nodejs-polyfills-removed
我遇到了同样的错误。就我而言,出现问题是因为我错误地尝试在前端代码中导入后端依赖项。
如果您收到此错误,不要像某些人建议的那样安装“buffer”或在配置文件中进行更改,首先,仔细查看所有最近的更改并检查导入:)