electron-vite-vue icon indicating copy to clipboard operation
electron-vite-vue copied to clipboard

[Help] mysql2这个npm包无法被排除构建

Open linzb93 opened this issue 1 year ago • 4 comments

我是在主进程中使用的,引入代码是import mysql from 'mysql2/promise'。运行npm run dev后,在dist-electron/main文件夹下发现打包后的文件很大,根据排查发现是mysql2这个包没法被排除构建,不能以import的方式引入。 然后我在vite.config.ts中设置,不管是defineConfig下面的,还是electron plugin里面的vite属性里面配置optimizeDeps.exclude: ['mysql2']都无效。 我引入的其他包,例如jsonwebtoken就没有问题,被排除在外了。

linzb93 avatar Mar 09 '24 08:03 linzb93

试试rollupOptions.external https://github.com/electron-vite/electron-vite-vue/blob/af8aa6cf7c3bc65fa14ae53b0fa31094f0c9f5ea/vite.config.ts#L39

subframe7536 avatar Mar 09 '24 12:03 subframe7536

试试rollupOptions.external

https://github.com/electron-vite/electron-vite-vue/blob/af8aa6cf7c3bc65fa14ae53b0fa31094f0c9f5ea/vite.config.ts#L39

也试过了,mysql2就在dependencies里面,还是无效。

linzb93 avatar Mar 09 '24 13:03 linzb93

这个试过吗 https://github.com/electron-vite/vite-plugin-electron/tree/main?tab=readme-ov-file#not-bundle

subframe7536 avatar Mar 09 '24 14:03 subframe7536

https://github.com/electron-vite/vite-plugin-electron/tree/main?tab=readme-ov-file#not-bundle

试了,但是TypeScript没通过,又撤回了。

plugins: [
    command === 'serve' && notBundle(filters: id => id == 'mysql2'),
  ],

linzb93 avatar Mar 10 '24 10:03 linzb93