Files
dvcp_v2_wxcp_app/bin/build.js
2024-10-31 14:47:24 +08:00

72 lines
1.8 KiB
JavaScript

const axios = require("axios");
const {copyFiles, fsExtra} = require("./tools");
const manifest = {
name: "base-wxcp",
description: "企业微信应用",
versionName: "1.0.0",
versionCode: "100",
transformPx: true,
h5: {
title: "加载中",
template: "template.h5.html",
router: {
mode: "history",
base: ""
},
devServer: {
disableHostCheck: true,
port: "80",
proxy: {
"/api": {
target: "http://192.168.1.87:9000",
changeOrigin: true,
pathRewrite: {
"^/api": "/"
}
}
}
},
optimization: {
preload: true,
treeShaking: {
enable: true
}
},
sdkConfigs: {
maps: {
qqmap: {
key: "RWWBZ-64BEJ-MVLFJ-FTHLQ-JTR6J-SAB2S"
}
}
}
}
}
const generate = (extra = {}) => {
return Promise.all([
// fsExtra.outputJson('src/common/config.json', extra),
fsExtra.outputJson('src/manifest.json', manifest),
])
}
module.exports = id => {
return axios.post("http://192.168.1.87:12525/node/custom/detail", null, {
params: {id}
}).then(res => {
if (res?.data?.data) {
const {customPath, appList, extra} = res.data.data
manifest.h5.router.base = extra.base || ""
manifest.h5.publicPath = extra.base || "/"
let tasks = []
return generate(extra)
.then(() => customPath ? copyFiles('src/apps', 'library/project/' + customPath) : fsExtra.emptyDir('src/apps'))
.then(() => {
appList?.map(e => {
if (!/project/.test(e.id))
tasks.push({dir: 'src/apps/' + e.name, source: 'library/apps/' + e.name})
})
return res.data.data
})
} else Promise.reject("无法找到项目")
})
}