ArcherGu / fast-vite-nestjs-electron

Vite + Vue + Electron + Nestjs with esbuild, crazy fast! ⚡

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

老哥 交流一下?

jack-pearson opened this issue · comments

邮箱,qize953463876@gmail.com 你发个邮件给我?

@jack-pearson 你好,有什么问题可以在issues里提出哦

我这边有一个问题是,mac 电脑可以进行打包和 dev.但是 window 却不行

[main]
[main] > fast-vite-nestjs-electron@0.0.1 dev:main D:\Z\demo
[main] > node -r ts-node/register script/build.main --env=development --watch
[main]
[vite]
[vite] > fast-vite-nestjs-electron@0.0.1 dev:vite D:\Z\demo
[vite] > vite
[vite]
[vite]
[vite] vite v2.5.6 dev server running at:
[vite]
[vite] > Local: http://localhost:13124/
[vite] > Network: use --host to expose
[vite]
[vite] ready in 5550ms.
[vite]
[main] > error: The define key "process.env.IntelliJ IDEA" contains invalid identifier "IntelliJ IDEA"
[main]
[main] (node:4196) UnhandledPromiseRejectionWarning: Error: Build failed with 1 error:
[main] error: The define key "process.env.IntelliJ IDEA" contains invalid identifier "IntelliJ IDEA"
[main] at failureErrorWithLog (D:\Z\demo\node_modules\esbuild\lib\main.js:1478:15)
[main] at D:\Z\demo\node_modules\esbuild\lib\main.js:1136:28
[main] at runOnEndCallbacks (D:\Z\demo\node_modules\esbuild\lib\main.js:926:63)
[main] at buildResponseToResult (D:\Z\demo\node_modules\esbuild\lib\main.js:1134:7)
[main] at D:\Z\demo\node_modules\esbuild\lib\main.js:1243:14
[main] at D:\Z\demo\node_modules\esbuild\lib\main.js:614:9
[main] at handleIncomingPacket (D:\Z\demo\node_modules\esbuild\lib\main.js:711:9)
[main] at Socket.readFromStdout (D:\Z\demo\node_modules\esbuild\lib\main.js:581:7)
[main] at Socket.emit (events.js:314:20)
[main] at Socket.EventEmitter.emit (domain.js:486:12)
[main] (Use node --trace-warnings ... to show where the warning was created)
[main] (node:4196) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
[main] (node:4196) [DEP0018] DeprecationWarning: Unhandled promise rejections are de

script目录下的esbuild.options.ts中:

const define = {};
for (const k in process.env) {
    if (['ProgramFiles(x86)', 'CommonProgramFiles(x86)', 'IntelliJ IDEA'].includes(k)) continue;
    define[`process.env.${k}`] = JSON.stringify(process.env[k]);
}

IntelliJ IDEA 也加到过滤数组中,然后试一下。

可以了可以了.请问下大佬,可不可以有一下 vue2 的版本?

网上有vue2 + vite的教程,你可以参考下,这个模板的前端部分(也就是electron的render部分)只是用vite快速构建,所以你可以改成react,vue2,Svelte等等其他的前端框架,只要能够用vite驱动就行了。vite部分

再 dev 时候, 你是再哪个地方 启动的 electron 的呢? 我并没有看到.

你可以看一下package.json里的scripts里的内容,里面都是执行的脚本。

dev模式下开启electron是先使用esbuild进行了build,输出到了dist/main/index.js,然后再执行的。
执行的命令是放在 script/build.main.ts:

const runApp = () => {
    return spawn(electron as any, [join(__dirname, `../${main}`)], { stdio: 'inherit' });
};