modern.config.ts 1.72 KB
import { appTools, defineConfig } from '@modern-js/app-tools';
import { tailwindcssPlugin } from '@modern-js/plugin-tailwindcss';
import { polyfillPlugin } from '@modern-js/plugin-polyfill';

// https://modernjs.dev/en/configure/app/usage
export default defineConfig({
  runtime: {
    router: true,
    state: true,
  },
  dev: {
    progressBar: { id: `🐹 ${process.env.APP_NAME}` },
    host: process.env.XHOST,
    port: Number(process.env.XPORT ?? 8080),
  },
  plugins: [
    appTools({
      bundler: 'experimental-rspack',
    }),
    tailwindcssPlugin(),
    polyfillPlugin(),
  ],
  performance: {
    removeConsole: ['log', 'info', 'warn'],
  },
  source: {
    globalVars: {
      'process.env.MODERN_DOMAIN': process.env.MODERN_DOMAIN,
      'process.env.MODERN_GRAY_TAG': process.env.MODERN_GRAY_TAG,
      'process.env.MODERN_APP_ID': process.env.MODERN_APP_ID,
      'process.env.MODERN_CALKEY': process.env.MODERN_CALKEY,
      'process.env.MODERN_XSIGN': process.env.XSIGN,
    },
    include: [/[\\/]node_modules[\\/]filter-obj[\\/]/, /[\\/]node_modules[\\/]query-string[\\/]/],
  },
  tools: {
    rspack: config => {
      config.experiments = {
        ...config.experiments,
        asyncWebAssembly: true,
        rspackFuture: {
          ...config.experiments?.rspackFuture,
        },
      };
      return config;
    },
    sass: {
      // 不能修改
      additionalData: '@import "@feewee/h5app-common/dist/es/styles/custom_theme.css";',
    },
    devServer: {
      proxy: {
        '/api/': {
          target: process.env.API_HOST,
          pathRewrite: { '^/api': '' },
        },
        '/api2/': {
          target: process.env.FILE_HOST,
          pathRewrite: { '^/api2/file': '' },
        },
      },
    },
  },
});