uni-app 百度小程序第三方开发时 ext.json 没有被打包到 mp-baidu 中
uni-app 百度小程序第三方开发时 ext.json 没有被打包到 mp-baidu 中
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | win 10? | CLI |
| ^2.0.0-31920210609001 |
产品分类:
uniapp/小程序/百度
操作步骤: *
预期结果:
ext.json 打包到 mp-baidu 根目录下
实际结果: *
bug描述:
如题,去年就有人提了,现在还没解决吗?
另外,假如解决,如何适配多端第三方开发 ext.json 配置不同的问题?
更多关于uni-app 百度小程序第三方开发时 ext.json 没有被打包到 mp-baidu 中的实战教程也可以访问 https://www.itying.com/category-93-b0.html
是因为百度上传的时候不能携带 ext 文件吗?
更多关于uni-app 百度小程序第三方开发时 ext.json 没有被打包到 mp-baidu 中的实战教程也可以访问 https://www.itying.com/category-93-b0.html
const path = require(‘path’)
const CopyWebpackPlugin = require(‘copy-webpack-plugin’) //最新版本copy-webpack-plugin插件暂不兼容,推荐v5.0.0
module.exports = {
configureWebpack: {
plugins: [
new CopyWebpackPlugin([
{
from: path.join(dirname, ‘ext.json’),
to: path.join(dirname, ‘dist’, process.env.NODE_ENV === ‘production’ ? ‘build’ : ‘dev’, process.env.UNI_PLATFORM, ‘ext.json’)
}
])
]
}
}
emmm,我做兼容处理了,开发环境的包不需要 ext 也能正常调试。这样做的原因是生产环境打包上传时,百度小程序如果存在ext.json文件会导致模板丢失,即虽然上传成功了,但是百度获取模板列表的接口获取不到。 从这种情况考虑的话,百度平台没有像微信平台编译时将 ext.json copy 到 bundle 中反而也不错。
在 uni-app 项目中,ext.json 文件需要手动配置才能正确打包到百度小程序的 mp-baidu 目录中。以下是解决方案:
-
手动配置 ext.json:
- 在项目根目录的
src文件夹下创建ext.json文件,并填写百度小程序第三方平台所需的配置内容。 - 在
vue.config.js中通过configureWebpack或chainWebpack配置,将ext.json复制到mp-baidu目录。示例代码:const CopyWebpackPlugin = require('copy-webpack-plugin'); module.exports = { configureWebpack: { plugins: [ new CopyWebpackPlugin([ { from: 'src/ext.json', to: 'mp-baidu/ext.json' } ]) ] } }; - 重新运行打包命令(如
npm run dev:mp-baidu或npm run build:mp-baidu),检查dist/mp-baidu目录下是否生成ext.json。
- 在项目根目录的
-
多端适配 ext.json 配置:
- 为不同平台创建独立的配置文件,例如
ext.baidu.json、ext.weixin.json。 - 在打包脚本中根据平台动态选择文件。例如,修改
vue.config.js:const platform = process.env.UNI_PLATFORM; // 获取当前平台 const extFile = platform === 'mp-baidu' ? 'src/ext.baidu.json' : 'src/ext.default.json'; module.exports = { configureWebpack: { plugins: [ new CopyWebpackPlugin([ { from: extFile, to: `${platform}/ext.json` } ]) ] } };
- 为不同平台创建独立的配置文件,例如

