如果你希望在HBuilder编译后使用脚本文件将根目录的JS文件放置到mapweixin目录下,可以编写一个脚本文件来实现这个操作。用于将根目录的JS文件复制到mapweixin目录
问题:使用HBuilder编译时,未使用到的自定义文件不会编译到mapweixin目录下。每次编译完成后需要手动copy,才能使用;所以我们需要使用脚本文件将HBuilder根目录下的自定义js文件复制到mapweixin下,下面是使用示例:
一、在根目录下创建打包后需要使用的js文件
1、在根目录下创建需要复制和使用的js文件(FinClipConf.js)
module.exports = {
extApi:[
{
name: 'LoginApi',
sync: false, // 是否为同步api
params: {
loginType: '',
openPage:'',
openType: '',
openData:'',
}
}
]
}
二、在根目录下放置脚本文件
如果项目是使用vue2.0框架开发的小程序,就添加vue.config.js脚本;如果是vue3.0框架开发的小程序,就添加vite.config.js脚本
1、vue2.0框架,配置脚本文件(vue.config.js)
const path = require('path')
const CopyWebpackPlugin = require('copy-webpack-plugin') //最新版本copy-webpack-plugin插件暂不兼容,推荐v5.0.0
module.exports = {
configureWebpack: {
plugins: [
new CopyWebpackPlugin([
{
from: path.join(__dirname, 'src/FinClipConf.js'),
to: path.join(__dirname, 'dist', process.env.NODE_ENV === 'production' ? 'build' : 'dev', process.env.UNI_PLATFORM, 'FinClipConf.js')
}
])
]
}
}
2、vue3.0框架,配置脚本文件(vite.config.js)
import path from 'path';
import fs from 'fs-extra';
import {
defineConfig } from 'vite';
import uni from '@dcloudio/vite-plugin-uni';
function copyFile() {
return {
enforce: 'post',
async writeBundle() {
await fs.copy(
path.resolve(__dirname, 'FinClipConf.js'),
path.join(
__dirname,
'unpackage/dist',
process.env.NODE_ENV === 'production' ? 'build' : 'dev',
process.env.UNI_PLATFORM,
'FinClipConf.js'
)
);
},
};
}
export default defineConfig({
plugins: [uni(), copyFile()],
});
实现效果:
编译成功后,成功将自定义js文件,通过脚本文件复制到了mapwexin文件夹下