【记录】uniapp小程序与原生小程序合并为一个小程序

项目场景:

一个uniapp小程序与原生小程序合并为一个小程序的需求


合并

`在网上查询各种相关方法,决定通过自动化脚本,将老项目内容合并到新项目里

1、uni-app 项目进行小程序端编译,并输出到 dist 目录。

2、执行自动化脚本。

第一步:将 uni-app 输出的小程序内容,拷贝到预上传目录 XXX 中。
第二步:将原生的小程序项目的指定内容,以分包的结构目录拷贝到预上传目录 XXX 中。
第三步:将 uni-app 项目输出的 app.json 配置文件,与原生小程序项目 app.json 文件中的路由配置进行校验并合并。
第四步:通过微信开发者工具预览预上传目录,校验小程序功能是否完整,并最终发布到官方平台。


出现问题

以上第2条的第二步,可以使用vue-cli的copy-webpack-plugin组件,在vue.config.js配置里一键自动化拷贝进包里。但是我发现,在打包后会卡在 - 开始编译当前项目至 mp-weixin 平台… 这个地方(一天一夜都没打包完,说明不是打包慢就是卡住了),使用各种方法依旧无法解决。


解决方案:

后面不使用webpack,
使用别的语言的脚本,再封装一层算了

写个脚本:

电脑环境里安装了python,用python做一个自动化脚本

第一步:1、uni-app 项目进行小程序端编译,并输出到 dist 目录。

无非就是输入打包命令 打开命令行并运行 ‘npm run build’ 命令

# 启动控制台输入打包命令
def run_npm_build():
    try:
        # 获取当前脚本所在的文件夹路径
        current_folder = os.path.dirname(os.path.abspath(__file__))

        # 提取文件夹名字
        folder_name = os.path.basename(current_folder)

        print("当前文件夹名字:", folder_name)

        # 如果你的uniapp项目是xiaochengxu判断当前目录是否为xiaochengxu
        if folder_name == "xiaochengxu":
            subprocess.run(['npm', 'run', 'serve'], shell=True, check=True)
        else: 
            if folder_name == "shelltool":
                subprocess.run(['cd', '..'], check=True, shell=True)
                subprocess.run(['npm', 'run', 'serve'], shell=True, check=True)
            else:
                print('当前目录不正确');
        
    except subprocess.CalledProcessError as e:
        print(f"Error: {
     e}")
    except FileNotFoundError:
        print("Error: 未找到 'npm' 命令,请确保已安装 Node.js 并且 npm 已配置到系统路径中")
    except Exception as e:
        print(f"Error: {
     e}")

第二步:

将原生的小程序项目的指定内容,以分包的结构目录拷贝到预上传目录 XXX 中(有一些配置文件没有用了可以删除)

# 文件移动
def fileMove():
	# source_folder 原生小程序目录 destination_folder打包后uniapp小程序目录
    shutil.move(source_folder, destination_folder)
    print(f"成功将文件夹从 {source_folder} 移动到 {destination_folder}")

第三步
将 uni-app 项目输出的 app.json 配置文件,与原生小程序项目 app.json 文件中的路由配置进行校验并合并。

new_config = {
   
    "subPackages": [
        {
   
            "root": "ICP",
  
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值