@dcloudio/uni-cli-shared/dist/mp/plugin.js文件中manifestJson.themeLocation = 'theme.json' 改为manifestJson.themeLocation == 'theme.json' 打包正常
- 发布:2022-11-09 19:34
- 更新:2022-11-17 14:50
- 阅读:385
产品分类: uniapp/小程序/微信
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: Deepin Linux 20.7.1
第三方开发者工具版本号: 1.06.2209070
基础库版本号: 2.27.2
项目创建方式: CLI
CLI版本号: 3.0.0-alpha-3060820221027004
操作步骤:
预期结果:
项目无drakmode不需要自定义主题时,打包产物app.json文件中不应有themeLocation属性。
项目无drakmode不需要自定义主题时,打包产物app.json文件中不应有themeLocation属性。
实际结果:
修改@dcloudio/uni-cli-shared/dist/mp/plugin.js代码后可正常打包
修改@dcloudio/uni-cli-shared/dist/mp/plugin.js代码后可正常打包
bug描述:
微信小程序打包提示,找不到theme.json,微信开发者工具无法正常编译。
经检查,打包产物中app.json文件存在themeLocation:"theme.json"属性,但产物中无theme.json文件。
项目无drakmode不需要自定义主题,因此,打包产物app.json文件中不应有themeLocation属性。
经测试检查@dcloudio/uni-cli-shared包,3.0.0-alpha-3060820221027003、3.0.0-alpha-3060820221027004两个版本有问题,3.0.0-alpha-3060820221027002版本正常。
检查发现文件@dcloudio/uni-cli-shared/dist/mp/plugin.js有如下代码:
其中,语句 manifestJson.themeLocation = 'theme.json' 应为 “==” 判断而不是“=”赋值
@dcloudio/uni-cli-shared/dist/mp/plugin.js
const copyMiniProgramThemeJson = () => {
if (!process.env.UNI_INPUT_DIR)
return [];
const manifestJson = (0, manifest_1.parseManifestJsonOnce)(process.env.UNI_INPUT_DIR)[process.env.UNI_PLATFORM] || {};
return (manifestJson.darkmode && manifestJson.themeLocation) ||
// 此处不应为赋值,而是判断是否等于'theme.json'
(manifestJson.themeLocation = 'theme.json') ? [
{
src: [manifestJson.themeLocation],
get dest() {
return process.env.UNI_OUTPUT_DIR;
},
transform(source) {
return JSON.stringify((0, json_1.parseJson)(source.toString(), true), null, 2);
},
},
]
: [];
};
3 个回复
DCloud_UNI_LXH
alpha 3.6.9 已修复
j***@163.com
有效
b***@163.com (作者)
最新版已修复