Open apss-pohl opened 1 year ago
I also created a branch with nestjs but without the workspaces: https://github.com/apss-pohl/nestjs-test/tree/feat/ev_plain This is working as expected (First two point are the same)
Bad config https://github.com/apss-pohl/nestjs-test/blob/feat/ev/electron.vite.config.ts
Simple way:
export default defineConfig({
main: {
plugins: [externalizeDepsPlugin(), swcPlugin()],
build: {
rollupOptions: {
input: {
index: resolve(__dirname, 'apps/main/index.ts')
}
}
}
},
preload: {
plugins: [externalizeDepsPlugin()],
build: {
rollupOptions: {
input: {
index: resolve(__dirname, 'apps/preload/index.ts')
}
}
}
},
renderer: {
root: './apps/renderer'
build: {
rollupOptions: {
input: {
resolve(__dirname, 'apps/renderer/index.html')
}
}
}
}
}
About dependencies: Check out https://electron-vite.org/guide/dev.html#dependencies-vs-devdependencies
Hello, thank you for your reply. I changed the configuration following your recommendations: https://github.com/apss-pohl/nestjs-test/blob/feat/ev/electron.vite.config.ts But it makes no difference (The issue mentioned with the renderer was already fixed). I was also reading the dependencies section carefully again but i cant get it up and running. I picked '@nestjs/websockets/socket-module' as example because it is the first one breaking. I literaly treid every combination: Configured it as external dependecy within your plugin, excluded it, included it, configured it external within rollup section. And also as manual chunk:
vite v4.4.7 building for development...
dep-3b8eb186.js:12907
transforming...
dep-3b8eb186.js:12907
"@nestjs/websockets/socket-module" is imported by " @nestjs/websockets/socket-module?commonjs-external", but could not be resolved – treating it as an external dependency.
node-entry.js:24103
"@nestjs/microservices/microservices-module" is imported by " @nestjs/microservices/microservices-module?commonjs-external", but could not be resolved – treating it as an external dependency.
node-entry.js:24103
"class-transformer/storage" is imported by " class-transformer/storage?commonjs-external", but could not be resolved – treating it as an external dependency.
node-entry.js:24103
✓ 2342 modules transformed.
dep-3b8eb186.js:12907
rendering chunks...
dep-3b8eb186.js:12907
out/main/chunks/@nestjs/websockets/socket-module-be58e914.js 0.11 kB │ map: 0.11 kB
dep-3b8eb186.js:12907
out/main/index.js 3,779.43 kB │ map: 6,343.23 kB
dep-3b8eb186.js:12907
✓ built in 11.85s
dep-3b8eb186.js:12907
build the electron main process successfully
publicUtils.cjs:3869
-----
publicUtils.cjs:3869
vite v4.4.7 building for development...
dep-3b8eb186.js:12907
transforming...
dep-3b8eb186.js:12907
✓ 1 modules transformed.
dep-3b8eb186.js:12907
rendering chunks...
dep-3b8eb186.js:12907
out/preload/index.js 0.45 kB │ map: 1.01 kB
dep-3b8eb186.js:12907
✓ built in 53ms
dep-3b8eb186.js:12907
build the electron preload files successfully
publicUtils.cjs:3869
-----
publicUtils.cjs:3869
dev server running for the electron renderer process at:
dep-3b8eb186.js:12907
➜ Local: http://localhost:5173/
dep-3b8eb186.js:12907
➜ Network: use --host to expose
dep-3b8eb186.js:12907
start electron app...
publicUtils.cjs:3869
App threw an error during load
main.js:124
Error: Cannot find module '@nestjs/websockets/socket-module' // <------------------------ The issue
Require stack:
I think the bundling gets confused with the workspaces. It does work with this very simple config and workspaces removed, no special dependency configuration needed at all (but has the same depedencies): https://github.com/apss-pohl/nestjs-test/blob/feat/ev_plain/electron.vite.config.ts
Startup:
vite v4.4.7 building for development...
dep-3b8eb186.js:12907
transforming...
dep-3b8eb186.js:12907
✓ 5 modules transformed.
dep-3b8eb186.js:12907
rendering chunks...
dep-3b8eb186.js:12907
out/main/index.js 7.15 kB │ map: 10.77 kB
dep-3b8eb186.js:12907
✓ built in 176ms
dep-3b8eb186.js:12907
build the electron main process successfully
publicUtils.cjs:3869
-----
publicUtils.cjs:3869
vite v4.4.7 building for development...
dep-3b8eb186.js:12907
transforming...
dep-3b8eb186.js:12907
✓ 1 modules transformed.
dep-3b8eb186.js:12907
rendering chunks...
dep-3b8eb186.js:12907
out/preload/index.js 0.48 kB │ map: 1.29 kB
dep-3b8eb186.js:12907
✓ built in 18ms
dep-3b8eb186.js:12907
build the electron preload files successfully
publicUtils.cjs:3869
-----
publicUtils.cjs:3869
dev server running for the electron renderer process at:
dep-3b8eb186.js:12907
➜ Local: http://localhost:5173/
dep-3b8eb186.js:12907
➜ Network: use --host to expose
dep-3b8eb186.js:12907
start electron app...
publicUtils.cjs:3869
123123
Yarn 3, add configuration in the .yarnrc
as follows:
nodeLinker: "node-modules"
Yarn 3, add configuration in the
.yarnrc
as follows:nodeLinker: "node-modules"
This is already the case: https://github.com/apss-pohl/nestjs-test/blob/feat/ev/.yarnrc.yml
I cant get past this. Is there any other idea what i can try?
Describe the bug
I am currently trying to implement an existing monorepo structure which makes use of yarn workspaces to your bundler because i think you really did an awsome job here! Big praise!
For testing purpose i created a reduced repository: https://github.com/apss-pohl/nestjs-test/tree/feat/ev
There are some issues i am currently facing:
- the renderer cant be changed, i have to provide src/rendererhttps://github.com/apss-pohl/nestjs-test/blob/feat/ev/apps/main/src/main.ts#L53UPDATE/ RESOLVED: Overlooked the note here: https://electron-vite.org/guide/dev.html#customizing
I played a lot with the externalization of those but i dont get it working (this did the trick in my current bundler): https://github.com/apss-pohl/nestjs-test/blob/feat/ev/electron.vite.config.ts#L36 If i don't add those to the list of external i get following output:
Any advice highly appreciated
Electron-Vite Version
1.0.25
Electron Version
^24.6.2
Vite Version
^4.4.2
Validations