uni-app搜遍全部文件,没有使用split函数,困扰了几天了

发布于 1周前 作者 vueper 来自 Uni-App

uni-app搜遍全部文件,没有使用split函数,困扰了几天了
02:33:53.233 UnhandledPromiseRejection: TypeError: Cannot read property ‘split’ of undefined
02:33:53.234 at gs (http://127.0.0.1:25852/appservice/common/vendor.js:1159:147451)
02:33:53.234 at Cs (http://127.0.0.1:25852/appservice/common/vendor.js:1159:150223)
02:33:53.234 at As (http://127.0.0.1:25852/appservice/common/vendor.js:1159:150385)
02:33:53.234 at http://127.0.0.1:25852/appservice/common/vendor.js:1159:151567
02:33:53.234 at _class3.xs (http://127.0.0.1:25852/appservice/common/vendor.js:1159:151603)
02:33:53.234 at http://127.0.0.1:25852/appservice/common/vendor.js:1159:152919


3 回复

02:37:17.284 TypeError: Cannot read property ‘split’ of undefined 02:37:17.284 at uni_modules/uni-list/components/uni-list-item/uni-list-item.vue:302:6 02:37:17.285 300| switch (api) { 02:37:17.285 301| case ‘navigateTo’: 02:37:17.285 302| uni.navigateTo(callback) 02:37:17.285 | ^^^^^^^^^^^^^^^^^^^^^^^^ 02:37:17.285 303| break 02:37:17.285 304| case ‘redirectTo’:


不用回答了,这个问题,更换下微信基础库,然后再更换回来就正常了。每天都遇到这个报错,无从描述。

在uni-app项目中,如果你确认没有直接使用split函数但仍然遇到相关的问题,可能是因为在某些库或者框架的底层代码中使用了split,或者是通过其他方式间接调用了它。不过,为了帮助你排查和确认自己的代码中确实没有使用split,你可以通过一些自动化的方式来检查代码。

以下是一个简单的Node.js脚本示例,它可以帮助你遍历uni-app项目的所有文件,并检查是否包含split字符串。请注意,这只是一个基础示例,并不能完全排除所有间接调用的可能性,但它可以作为一个起点。

首先,确保你已经安装了Node.js。然后,在你的uni-app项目根目录下创建一个新的JavaScript文件,比如checkSplit.js,并添加以下代码:

const fs = require('fs');
const path = require('path');

// 递归遍历目录
function traverseDir(dir) {
    const files = fs.readdirSync(dir);
    files.forEach(file => {
        const fullPath = path.join(dir, file);
        const stats = fs.statSync(fullPath);
        if (stats.isDirectory()) {
            traverseDir(fullPath);
        } else if (stats.isFile() && fullPath.endsWith('.js') || fullPath.endsWith('.vue')) {
            checkFileForSplit(fullPath);
        }
    });
}

// 检查文件中是否包含'split'
function checkFileForSplit(filePath) {
    const content = fs.readFileSync(filePath, 'utf8');
    if (content.includes('split')) {
        console.log(`Found 'split' in file: ${filePath}`);
    }
}

// 开始遍历项目根目录(假设是./)
traverseDir('./');

运行这个脚本:

node checkSplit.js

这个脚本会递归遍历你的项目目录,检查所有.js.vue文件是否包含split字符串。如果找到,它会输出文件的路径。

如果你运行这个脚本后没有发现任何包含split的文件,那么很可能是:

  1. split函数被某些依赖库使用了。
  2. 你的代码或某些库通过动态执行或其他方式间接调用了split

为了进一步排查,你可以考虑:

  • 检查node_modules目录中的依赖库。
  • 使用更复杂的静态代码分析工具来检查代码依赖。
  • 如果问题依旧存在,可能需要更详细地查看报错信息或日志,以确定split函数被调用的具体上下文。

希望这能帮助你解决问题!

回到顶部