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.js
中import B.js
,而B.js
中又import A.js
,这会导致循环引用。 - 解决方法:重构代码,避免循环依赖。
2. 清理项目缓存
- 有时候编译器的缓存可能导致问题。尝试清理缓存并重新编译。
- 删除
node_modules
和unpackage
文件夹,然后重新安装依赖并运行: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,
},
};