uni-app开发支付宝小程序,MobX依赖报错:
Error: [MobX] MobX requires global 'Symbol' to be available or polyfilled
解决方案: 在项目根目录下创建 vite.config.ts 文件,添加以下配置:
import { defineConfig } from 'vite';
import uni from '@dcloudio/vite-plugin-uni';
import path from 'path';
// 解决支付宝小程序 MobX 依赖报错
function injectCodePlugin() {
return {
name: 'inject-code-to-npm',
transform(code, id) {
if (id.includes('node_modules/mobx/') && id.endsWith('.js')) {
// 要注入的代码
const injectedCode = `
// 注入的自定义代码
let global={
Symbol: Symbol,
Map: Map,
Set: Set
};
`;
return injectedCode + code;
}
return code;
},
};
}
export default defineConfig({
// 微信小程序没有,只有支付宝小程序有
plugins: process.env.UNI_PLATFORM === 'mp-weixin' ? [uni()] : [uni(), injectCodePlugin()],
base: './',
server: {
},
resolve: {
alias: {
"@": path.resolve(__dirname, './')
}
}
});