我正在使用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不起作用?
我该如何解决这个问题?
3条答案
按热度按时间hk8txs481#
我也遇到了同样的问题。我的axios版本是0.21.3。我尝试了很多方法,但都不起作用。最后,回到0.21.1(这个版本没有validator.js,所以我认为这是一个bug)
npm i --保存axios@0.21.1
zzzyeukh2#
显然,axios依赖于package.json中定义的"version"属性。
但解决方案是在package.json中添加一个"version"属性。
i2byvkas3#
我今天遇到了同样的问题。这是因为我把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配置中的类似内容造成的。请检查您的规则和配置的其他部分,以查看您使用的加载程序以及您如何解析文件和对象。