怎么在uni-app vendor.js最开头引入js文件

怎么在uni-app vendor.js最开头引入js文件

操作步骤:

如图

预期结果:

如图

实际结果:

如图

bug描述:

看图,需要在vendorjs内部最开头位置引入js文件,以解决微信小程序的TextEncoder兼容性问题

图片

image

信息类别 信息内容
产品分类 uniapp/App
PC开发环境 Windows
PC开发环境版本 windows
HBuilderX类型 正式
HBuilderX版本 4.87
手机系统 Android
手机系统版本 Android 16
手机厂商 华为
手机机型 华为
页面类型 vue
vue版本 vue3
打包方式 云端
项目创建方式 HBuilderX

更多关于怎么在uni-app vendor.js最开头引入js文件的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

写个 vite 插件,打包结束之后把你想加的代码加进去

更多关于怎么在uni-app vendor.js最开头引入js文件的实战教程也可以访问 https://www.itying.com/category-93-b0.html


感觉可行,但是有没有更好的方式呀

回复 qlingYes: 写脚本,或者修改框架源代码应该也可以

该bug反馈内容不完整,缺乏关键信息。描述中提到需在vendor.js开头引入JS解决微信小程序TextEncoder兼容性问题,但未提供具体错误日志、代码示例或截图(仅写"如图"),官方无法复现问题。复现步骤过于简略,未说明操作流程;预期结果与实际结果均无实质内容,难以判断合理性。分类信息中HBuilderX版本4.87较旧(当前最新版更高),且混淆了平台:TextEncoder问题属于微信小程序范畴,但反馈中却标注Android平台16版本,逻辑矛盾。
经核查知识库,TextEncoder在微信小程序旧版环境确实存在兼容性问题,但正确解决方案并非手动修改vendor.js(该文件构建时会自动生成)。应通过以下方式处理:

使用polyfill方案,在manifest.json的transpiler配置中添加垫片
或在main.js顶部引入TextEncoder polyfill
升级HBuilderX至最新版(4.87已非最新),新版已优化相关兼容性

此反馈实为技术问题咨询而非有效bug报告。建议用户补充完整错误信息,明确平台场景(应选微信小程序而非Android),并参考系统信息API文档确认环境兼容性。直接修改vendor.js不符合uni-app工程规范,可能导致构建异常。 内容为 AI 生成,仅供参考

要在uni-app的vendor.js最开头引入JS文件,可以通过以下方式实现:

  1. 修改项目配置:在项目根目录的vue.config.js(如没有则创建)中添加以下配置:
module.exports = {
  chainWebpack: (config) => {
    config.plugin('html').tap(args => {
      args[0].inject = 'head'
      return args
    })
  }
}
  1. 使用main.js引入:在main.js文件的最顶部使用import语句引入需要的JS文件:
import './path/to/your-polyfill.js'
// 其他import语句...
  1. 通过index.html引入:在index.html的head标签内添加script标签:
<head>
  <script src="./static/your-polyfill.js"></script>
</head>

对于微信小程序的TextEncoder兼容性问题,建议使用polyfill方案。可以创建一个polyfill文件,内容如下:

if (typeof TextEncoder === 'undefined') {
  global.TextEncoder = require('text-encoding').TextEncoder
}
if (typeof TextDecoder === 'undefined') {
  global.TextDecoder = require('text-encoding').TextDecoder
}
回到顶部