uni-app v3.3.13及靠近版本 js文件import自身引发卡在‘正在编译’又不报任何错误

uni-app v3.3.13及靠近版本 js文件import自身引发卡在‘正在编译’又不报任何错误

开发环境 版本号 项目创建方式
HbuilderX 3.3.13

示例代码:

import {toRequest} '@/common.js';  

export function toRequest() {  
...  
}  

export default {  
        toRequest  
}
1 回复

更多关于uni-app v3.3.13及靠近版本 js文件import自身引发卡在‘正在编译’又不报任何错误的实战教程也可以访问 https://www.itying.com/category-93-b0.html


uni-app 开发中,如果遇到在 v3.3.13 及附近版本中,js 文件 import 自身导致项目卡在“正在编译”且没有任何错误提示的情况,这通常是由于循环引用或编译器的某些问题引起的。以下是一些可能的解决方案和排查步骤:


1. 检查循环引用

  • 确保你没有在 js 文件中 import 自身,或者在不同的文件之间形成了循环依赖。
  • 例如,A.jsimport B.js,而 B.js 中又 import A.js,这会导致循环引用。
  • 解决方法:重构代码,避免循环依赖。

2. 清理项目缓存

  • 有时候编译器的缓存可能导致问题。尝试清理缓存并重新编译。
  • 删除 node_modulesunpackage 文件夹,然后重新安装依赖并运行:
    rm -rf node_modules unpackage
    npm install
    npm run dev
    

3. 更新依赖

  • 确保 uni-app 和相关依赖(如 @dcloudio/vue-cli-plugin-hbuilderx)是最新版本。
  • 更新方法:
    npm update
    

4. 检查编译器日志

  • 如果卡在“正在编译”,检查编译器的输出日志,看看是否有隐藏的错误。
  • HBuilderX 中,可以通过“运行” -> “运行到浏览器” -> “控制台”查看日志。

5. 简化代码测试

  • 将问题代码逐步简化,定位具体是哪一部分导致了问题。
  • 例如,注释掉部分代码,或者将 import 语句暂时移除,看看是否能正常编译。

6. 检查文件路径

  • 确保 import 的文件路径正确,避免路径错误导致问题。
  • 例如:
    import MyComponent from './MyComponent.js'; // 确保路径正确
    

7. 使用动态导入

  • 如果静态 import 导致问题,可以尝试使用动态导入(import()):
    import('./MyComponent.js').then(module => {
      // 使用 module
    });
    

8. 检查 IDE 问题

  • 如果使用的是 HBuilderX,尝试重启 IDE 或更新到最新版本。
  • 也可以尝试使用其他开发工具(如 VSCode)进行编译。

9. 提交问题

  • 如果以上方法都无法解决问题,可能是 uni-app 本身的 bug。可以到 uni-app 官方社区或 GitHub 提交问题,附上复现步骤和代码。

示例代码排查

假设你有以下代码:

// A.js
import B from './B.js';

export default {
  name: 'A',
  components: {
    B,
  },
};

// B.js
import A from './A.js';

export default {
  name: 'B',
  components: {
    A,
  },
};
回到顶部