uni-app Vue3项目运行到微信小程序时 main.js引用的js文件没有被编译
uni-app Vue3项目运行到微信小程序时 main.js引用的js文件没有被编译
操作步骤:
- 运行到微信开发者工具
预期结果:
- 编译js文件
实际结果:
- 未编译
bug描述:
- Vue3 项目编译到小程序时,main.js引用的js文件没有被编译,导致引用模块undefined,但是如果对import名称做修改,热更新的时候文件就会被编译
图片
信息类型 | 内容 |
---|---|
产品分类 | HbuilderX |
PC开发环境 | Windows |
PC开发环境版本 | win10家庭版 21H2 |
HBuilderX版本号 | 3.4.6 |
更多关于uni-app Vue3项目运行到微信小程序时 main.js引用的js文件没有被编译的实战教程也可以访问 https://www.itying.com/category-93-b0.html
怎么个引入不了 是这个global文件么?
更多关于uni-app Vue3项目运行到微信小程序时 main.js引用的js文件没有被编译的实战教程也可以访问 https://www.itying.com/category-93-b0.html
是的,在main引入,挂载到app.config.globalProperties上,运行后这个global.js没有被编译为commonjs模块,但是在编译后引用处里其实都是require引用的,所以导致获取不到这个模块,但奇怪的是在修改import的别名热更新后,文件就被编译了,和这个global相同方式引用的还有vuex的store/index.js就没有出现这种问题
又看了下,好像运行之后只要有一次热更新,文件就被编译了
回复 Hal74: 这就很神奇啊,跟文件中的语法有关系么,比如说 一个简单的global文件,能否正常引入
回复 小枫叶: 试过,我又写了一个基本是空的模块,导出的只有一个字符串,结果是一样的: import request from ‘./static/js/request’ console.log(request); //undefined
// reques.js const http = ‘post’ export default http
在 uni-app
项目中,如果你使用的是 Vue3
,并且在运行到微信小程序时发现 main.js
中引用的 js
文件没有被编译,可能是以下几个原因导致的:
1. 文件路径问题
确保你在 main.js
中引用的 js
文件路径是正确的。uni-app
在编译时可能会对路径进行一些处理,因此建议使用相对路径或 @
别名来引用文件。
例如:
import myModule from '@/utils/myModule.js';
2. 文件类型问题
确保你引用的文件是 .js
文件,并且文件内容是正确的。如果文件内容有语法错误,可能会导致编译失败。
3. 编译配置问题
检查 vue.config.js
或 manifest.json
中的配置,确保没有配置错误导致某些文件被忽略。
4. 编译缓存问题
有时候编译缓存可能会导致问题,尝试清除编译缓存并重新编译。
在项目根目录下运行以下命令:
npm run dev:mp-weixin -- --clear
5. 检查 main.js
中的代码
确保 main.js
中的代码是正确的,并且没有语法错误。例如:
import { createApp } from 'vue';
import App from './App.vue';
import myModule from '@/utils/myModule.js';
const app = createApp(App);
app.use(myModule);
app.mount('#app');
6. 检查 myModule.js
中的代码
确保 myModule.js
中的代码是正确的,并且导出了一个可以被 Vue
使用的模块。例如:
export default {
install(app) {
// 在这里添加你的插件逻辑
}
};
7. 检查微信开发者工具
确保微信开发者工具是最新版本,并且没有缓存问题。可以尝试关闭开发者工具并重新打开。
8. 检查 uni-app
版本
确保你使用的 uni-app
版本是最新的,并且支持 Vue3
。可以通过以下命令更新 uni-app
:
npm install @dcloudio/uni-app@latest
9. 检查 package.json
中的依赖
确保 package.json
中的依赖是正确的,并且没有版本冲突。可以尝试删除 node_modules
文件夹并重新安装依赖:
rm -rf node_modules
npm install