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

// https://modernjs.dev/en/configure/app/usage
export default defineConfig({
  runtime: {
    router: true,
    state: true,
  },
  dev: {
    progressBar: false,
    host: process.env.XHOST,
    port: Number(process.env.XPORT ?? 8080),
  },
  plugins: [
    appTools({
      bundler: 'experimental-rspack',
    }),
    tailwindcssPlugin(),
  ],
  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,
    },
  },
  tools: {
    rspack: (config, { prependPlugins, rspack }) => {
      prependPlugins(
        new rspack.ProgressPlugin({
          prefix: `🐹 ${process.env.APP_NAME}`,
        }),
      );
      config.experiments = {
        ...config.experiments,
        asyncWebAssembly: true,
        rspackFuture: {
          ...config.experiments?.rspackFuture,
          disableApplyEntryLazily: true,
        },
      };
      return config;
    },
    devServer: {
      proxy: {
        '/api': {
          target: process.env.API_HOST,
          pathRewrite: { '^/api': '' },
        },
        '/api2': {
          target: process.env.FILE_HOST,
          pathRewrite: { '^/api2': '' },
        },
      },
    },
  },
});