怎样在dist-electron下生成其他js文件?
electron/main.ts:
ipcMain.handle("query-db", () => {
return new Promise((resolve, reject) => {
const worker = new Worker(path.join(__dirname, "worker.js"));
worker.postMessage("select * from tb_xhs_collect");
worker.on("message", (result) => {
if (result.error) {
reject(result.error);
} else {
resolve(result);
}
worker.terminate();
});
worker.on("error", (error) => {
reject(error);
worker.terminate();
});
});
});
electron/worker.ts:
import { sqQuery } from "./sqlite";
import { parentPort } from "worker_threads";
parentPort.on("message", async (sql) => {
try {
const result = await sqQuery({ sql });
parentPort.postMessage(result);
} catch (error) {
parentPort.postMessage({ error: error.message });
}
});
启动后调用query-db方法发现报错:Error occurred in handler for 'query-db': Error: Cannot find module 'D:\project\VsCodeProjects\red-archive\dist-electron\worker.js'
at Module._resolveFilename (node:internal/modules/cjs/loader:1055:15)
at Module._load (node:internal/modules/cjs/loader:908:27)
at c._load (node:electron/js2c/node_init:2:13672)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:96:12)
at MessagePort.
我也遇到同样的问题,目前还没有找到解决方案,如果找到了麻烦相互告知下,谢谢
我也遇到同样的问题,目前还没有找到解决方案,如果找到了麻烦相互告知下,谢谢
可以参考下我的这个,希望对你有用。https://github.com/mundane799699/electron-vite-project
我看了你的这个配置是在entry里面引入了文件, 但是我的需求目前是当前我还有一个静态文件keygen.pem文件这个需要如何操作呢
我看了你的这个配置是在entry里面引入了文件, 但是我的需求目前是当前我还有一个静态文件keygen.pem文件这个需要如何操作呢
https://github.com/electron-vite/vite-plugin-electron/issues/110
你可以参考下这个vite插件 https://github.com/think-flow/l4d2addon_installer/blob/main/vite.plugin.modulePath.ts 然后就可以通过添加 "?modulePath" 查询参数来导入你的worker
import workerPath from './worker?modulePath'
ipcMain.handle("query-db", () => {
return new Promise((resolve, reject) => {
const worker = new Worker(workerPath);
......
});
});
我看了你的这个配置是在entry里面引入了文件, 但是我的需求目前是当前我还有一个静态文件keygen.pem文件这个需要如何操作呢
keygen.pem 完全可以放到项目根目录,或者建一个 static 目录。记得在 electron-builder.json5 文件的 files 选项中加入一下,这样文件会被收录到构建好的 App 中。在主进程中通过文件相对路径就可以读取 keygen.pem 文件了。