【问题标题】:Uncaught TypeError: Cannot read properties of undefined (reading 'split')未捕获的类型错误:无法读取未定义的属性(读取“拆分”)
【发布时间】:2022-03-17 10:05:30
【问题描述】:

我正在使用 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 不起作用?

我该如何解决这个问题?

【问题讨论】:

  • pkg.version 的内容是什么?
  • 它是未定义的,虽然 pkg 已定义。澄清一下,这是来自 axios 库的代码,而不是我的代码。

标签: javascript webpack


【解决方案1】:

我也遇到了同样的问题。 我的 axios 版本是 0.21.3 我尝试了很多方法,但没有奏效。 最后回到0.21.1(这个版本没有validator.js,所以我认为这是一个bug)

npm i --save axios@0.21.1

【讨论】:

    【解决方案2】:

    显然 axios 依赖于 package.json 中定义的“version”属性。 不过不知道为什么……

    但解决方案是在 package.json 中添加一个“版本”属性。任何版本。

    【讨论】:

      【解决方案3】:

      我今天遇到了同样的问题。这是因为我将 json 文件的默认加载器更改为 file-loader,如下所示:

      {
        type: 'javascript/auto',
        test: /\.(geo)?json$/,
        use: 'file-loader'
      },
      

      如果您查看 axios v0.21.4 中 axios/lib/helpers/validators.js 的代码,您会看到它像这样导入 package.jsonvar pkg = require('./../../package.json');

      上述配置导致文件被加载为指向其 URL 的字符串,但代码假定为 JS 对象,当它尝试访问其 version 属性时,它会失败。

      我通过从该规则中排除 axios/package.json 来修复错误:

      {
        type: 'javascript/auto',
        test: /\.(geo)?json$/,
        exclude: [path.resolve(__dirname, 'node_modules/axios/package.json')],
        use: 'file-loader'
      },
      

      您的问题可能是由于您的 webpack 配置中存在类似问题。查看您的规则和配置的其他部分,了解您正在使用哪些加载器以及如何解析文件和对象。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-22
        • 1970-01-01
        • 2021-12-25
        • 2021-11-24
        • 2021-10-31
        • 2021-11-07
        • 2022-01-17
        • 2023-03-13
        相关资源
        最近更新 更多