uni-app Vue3项目运行到微信小程序时 main.js引用的js文件没有被编译

uni-app Vue3项目运行到微信小程序时 main.js引用的js文件没有被编译

操作步骤:

  • 运行到微信开发者工具

预期结果:

  • 编译js文件

实际结果:

  • 未编译

bug描述:

  • Vue3 项目编译到小程序时,main.js引用的js文件没有被编译,导致引用模块undefined,但是如果对import名称做修改,热更新的时候文件就会被编译

图片

Image 1 Image 2

信息类型 内容
产品分类 HbuilderX
PC开发环境 Windows
PC开发环境版本 win10家庭版 21H2
HBuilderX版本号 3.4.6

更多关于uni-app Vue3项目运行到微信小程序时 main.js引用的js文件没有被编译的实战教程也可以访问 https://www.itying.com/category-93-b0.html

7 回复

怎么个引入不了 是这个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.jsmanifest.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
回到顶部