vite-plugin / vite-plugin-dynamic-import

Enhance Vite builtin dynamic import
https://www.npmjs.com/package/vite-plugin-dynamic-import
MIT License
186 stars 11 forks source link

Build error when using the plugin in Vite.config #46

Open amirtbi opened 1 year ago

amirtbi commented 1 year ago

I used the 'vite-plugin-dynamic-import' in my Vite.config + Vue app. This is my vite.config : ` /// import { fileURLToPath } from 'url' import VueI18n from '@intlify/vite-plugin-vue-i18n' import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import dynamicImport from 'vite-plugin-dynamic-import' // es import { visualizer } from "rollup-plugin-visualizer"; import AutoImport from 'unplugin-auto-import/vite' import Components from 'unplugin-vue-components/vite' import DefineOptions from 'unplugin-vue-define-options/vite' import { defineConfig, type PluginOption } from 'vite' import Pages from 'vite-plugin-pages' import Layouts from 'vite-plugin-vue-layouts' import vuetify from 'vite-plugin-vuetify' import { url } from 'inspector';

export default defineConfig({ plugins: [ vue(), vueJsx(), dynamicImport(), vuetify({ styles: { configFile: 'src/styles/variables/_vuetify.scss', }, }),

Pages({
  exclude: ['src/pages/**/components/**','src/pages/**/i18n/**','src/pages/**/models/**'],

  onRoutesGenerated: routes => [
    // Email filter
    {
      path: '/apps/email/:filter',
      name: 'apps-email-filter',
      component: '/src/pages/apps/email/index.vue',
      meta: {
        navActiveLink: 'apps-email',
        layoutWrapperClasses: 'layout-content-height-fixed',
      },
    },

    // Email label
    {
      path: '/apps/email/label/:label',
      name: 'apps-email-label',
      component: '/src/pages/apps/email/index.vue',
      meta: {
        // contentClass: 'email-application',
        navActiveLink: 'apps-email',
        layoutWrapperClasses: 'layout-content-height-fixed',
      },
    },
    ...routes,
  ],
}),
Layouts(),
Components({
  dirs: ['src/@core/components', 'src/views/demos'],
  dts: true,
}),

AutoImport({
  imports: ['vue', 'vue-router', '@vueuse/core', 'vue-i18n', 'pinia','vitest'],
  dts:true,
  vueTemplate: true,
}),
VueI18n({
  runtimeOnly: true,
  compositionOnly: true,
  include: [
    fileURLToPath(new URL('./src/plugins/i18n/locales/**', import.meta.url)),
  ],
}),
DefineOptions(),

visualizer() as PluginOption

], test:{ globals:true, environment: 'happy-dom', }, define: { 'process.env': {} }, resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)), '@themeConfig': fileURLToPath(new URL('./themeConfig.ts', import.meta.url)), '@core': fileURLToPath(new URL('./src/@core', import.meta.url)), '@layouts': fileURLToPath(new URL('./src/@layouts', import.meta.url)), '@configured-variables': fileURLToPath(new URL('./src/styles/variables/_template.scss', import.meta.url)), '@axios': fileURLToPath(new URL('./src/plugins/axios', import.meta.url)), '@validators': fileURLToPath(new URL('./src/@core/utils/validators', import.meta.url)), 'apexcharts': fileURLToPath(new URL('node_modules/apexcharts-clevision', import.meta.url)),

},

}, build: { target: 'esnext', chunkSizeWarningLimit: 5000, }, optimizeDeps: { exclude: ['vuetify'], entries: [ './src/*/.vue', ], }, }) ` When I build my project. the following error appears:

promises' is not exported by __vite-browser-external, imported by node_modules/@iconify/tools/lib/misc/scan.mjs import { promises } from 'fs'

how can handle this issue?

caoxiemeihao commented 1 year ago

Can you provide a minimal reproduction repo?