我正在使用 webpack,但在浏览器中出现此错误:
Uncaught TypeError: Cannot read properties of undefined (reading 'split')
at eval (validator.js:15)
at Object../node_modules/axios/lib/helpers/validator.js (main.bundle.js:1225)
at __webpack_require__ (main.bundle.js:1673)
at eval (Axios.js:8)
at Object../node_modules/axios/lib/core/Axios.js (main.bundle.js:1005)
at __webpack_require__ (main.bundle.js:1673)
at eval (axios.js:5)
at Object../node_modules/axios/lib/axios.js (main.bundle.js:961)
at __webpack_require__ (main.bundle.js:1673)
at eval (index.js:1)
编译时没有错误或警告。
validator.js 的第 15 行如下所示: var currentVerArr = pkg.version.split('.');
文件顶部有这一行: var pkg = __webpack_require__(/*! ./../../package.json */ "./package.json");
所以看起来 __webpack_require 不起作用?
我怎样才能解决这个问题?
原文由 Fidelix 发布,翻译遵循 CC BY-SA 4.0 许可协议
我今天遇到了同样的问题。这是因为我将 json 文件的默认加载程序更改为
file-loader
如下所示:如果您在 axios v0.21.4 中查看
axios/lib/helpers/validators.js
的代码,您会看到它导入了package.json
就像这样:var pkg = require('./../../package.json');
.上面的配置导致文件作为指向其 URL 的字符串被加载,但代码假定一个 JS 对象,并且当它尝试访问其
version
属性时,它失败了。我通过从该规则中排除
axios/package.json
来修复错误:您的问题可能是由于您的 webpack 配置中存在类似问题。检查您的规则和配置的其他部分,以查看您使用的加载程序以及您如何解析文件和对象。