1.首先对uni-app vite+ts+vue3模式 集成微信云开发(一)-优快云博客中的,复制云函数文件配置,进行修改因为在开发过成中不想改一次云函数就重新构建一次
copyPlugin.ts
import CopyPlugin from 'vite-plugin-files-copy'
// let env=process.env.NODE_ENV;
// let to="../"+(env == 'development' ? 'dist/dev' : 'dist/build')+'/mp-weixin/cloudfunctions';
// console.log(to,"------to");
import fs from 'fs';
import path from 'path';
import fsExtra from 'fs-extra'
let env = process.env.NODE_ENV;
let from = path.resolve(__dirname,'../src/cloudfunctions');
let to = path.resolve(__dirname,`../${env === 'development' ? 'dist/dev' : 'dist/build'}/mp-weixin/cloudfunctions`);
function copyFiles(srcDir, destDir) {
// 创建目标文件夹
if(!fs.existsSync(destDir)){
fs.mkdirSync(destDir);
}
// 读取源文件夹中的所有文件
const files = fs.readdirSync(srcDir);
// 遍历文件并复制
files.forEach((file) => {
const srcFile = path.join(srcDir, file);
const destFile = path.join(destDir, file);
fsExtra.copySync(srcFile, destFile);
});
}
function defineCopyPlugin(){
return {
name:"复制云函数文件夹",
buildEnd (){
console.log("我看眼执行吗22")
copyFiles(from, to);
}
}
}
export default defineCopyPlugin;
vite.config.ts
import { defineConfig } from "vite";
import uni from "@dcloudio/vite-plugin-uni";
const path = require('path')
import defineCopyPlugin from './plugins/copyPlugin';
let env=process.env.NODE_ENV;
let to="./"+(env == 'development' ? 'dist/dev' : 'dist/build')+'/mp-weixin/cloudfunctions';
// console.log(to,"=====to")
export default defineConfig({
plugins: [
uni(),
defineCopyPlugin()
],
});
2.自定义数据库读写条件
{
"read": true,
"write": "doc._openid == auth.openid ||get(`database.mallManager.${auth.openid}`).isManager==true"
}
此处的get(`database.mallManager.${auth.openid}`)的 ${auth.openid} 代表的是mallManager表格中默认的_id字段值,不知道其他怎么写,我是将openid赋值到了_id上就起作用了