m***@163.com
m***@163.com
  • 发布:2024-04-08 13:50
  • 更新:2024-04-11 13:05
  • 阅读:1463

uniapp 有办法使用微信小程序skyline渲染的appbar全局工具栏属性吗?

分类:uni-app

微信小程序skyline全局工具栏文档地址:https://developers.weixin.qq.com/miniprogram/dev/framework/runtime/skyline/appbar.html

因为uniapp项目编译到小程序平台时会改变原有的目录结构,而微信小程序要求app-bar目录必须在项目的根目录下,求助有什么合适的解决方案?能够保证编译后原生组件的文件位置不变化

2024-04-08 13:50 负责人:无 分享
已邀请:
JXWang

JXWang

可以这样写,实测可行

import {  
    defineConfig  
} from 'vite'  
import uni from '@dcloudio/vite-plugin-uni'  
import path from 'node:path'  
const viteStaticCopy = import('vite-plugin-static-copy')  

export default defineConfig({  
    plugins: [  
        uni(),  
        [  
            viteStaticCopy.then(res => {  
                return res.viteStaticCopy({  
                        targets: [{  
                            src: path.resolve(__dirname, './app-bar') + '/[!.]*',  
                            dest: './app-bar',  
                        }]  
                    })  
            })  
        ]  
    ],  
})
  • [已删除]

    我想问一下,我将一个组件运行到weixin后,将四个文件复制到appBar里面,然后导入后要怎么在vue中使用该组件的方法

    2024-05-18 21:54

JXWang

JXWang

可以尝试使用 vite 插件解决,比如 viteStaticCopy,原理就是编译时将目标目录文件原样复制一份到打包目录中

// vite.config.js  
import { defineConfig } from 'vite'  
import uni from '@dcloudio/vite-plugin-uni'  
import { viteStaticCopy } from 'vite-plugin-static-copy'  
const path = require('path')  
export default defineConfig({  
  plugins: [  
    uni(),  
    [viteStaticCopy({  
      targets: [  
        {  
          src: path.resolve(__dirname, './app-bar') + '/[!.]*',   
          dest: './',  
        },  
      ],  
    })]  
  ],  
})
  • m***@163.com (作者)

    不行,使用官方git上的最新空项目,插件报错,提示:


    Error [ERR_REQUIRE_ESM]: require() of ES Module E:\rsns\frontend-mp-new\node_modules\.pnpm\vite-plugin-static-copy@1.0.2_vite@4.3.5\node_modules\vite-plugin-static-copy\dist\index.js from E:\xx\xxx-mp-new\vite.config.ts not supported.

    vite.config.ts代码


    import { defineConfig,normalizePath  } from "vite";  
    import uni from "@dcloudio/vite-plugin-uni";
    import { viteStaticCopy } from 'vite-plugin-static-copy';

    import path from 'node:path'

    // normalizePath(path.resolve(__dirname, './app-bar'))
    // // instead of
    // path.resolve(__dirname, './app-bar') // C:\project\foo

    export default defineConfig({
    plugins: [
    uni(),
    viteStaticCopy({
    targets: [
    // {
    // src: 'bin/example.wasm',
    // dest: 'wasm-files'
    // }
    ]
    })
    ],
    })

    项目版本:

    uniapp cli 项目版本:3.0.0-alpha-4010120240403003

    "vue": "^3.4.21"

    "vite": "4.3.5",


    猜测问题是这个导致:https://cn.vitejs.dev/guide/troubleshooting,还有什么别的解决方案吗?

    2024-04-10 22:48

  • [已删除]

    回复 m***@163.com: export default defineConfig(async () => {

    const { viteStaticCopy } = await import("vite-plugin-static-copy");

    2024-05-18 21:40

m***@163.com

m***@163.com (作者)

@DCloud_UNI_WJX

要回复问题请先登录注册