首页 > 建站教程 > 小程序、公众号 >  uni-app支付宝小程序 MobX 依赖报错正文

uni-app支付宝小程序 MobX 依赖报错

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, './')
      }
   }
});