我正在使用带有 webpack 和 typescript 的 electro forge,uiohook-napi 在我的开发平台上正常工作。编译程序也能正常工作。但是当我尝试运行 .exe 文件时,出现错误“找不到模块'uiohook-napi”。
模块:uiohook-napi
uiohook-napi 版本:^1.5.3
环境名称和版本:nodejs 20.9.0,电子:29.1.5,电子锻造:^7.3.1
操作系统和版本:win32 x64
我的webpack配置:
import type { Configuration } from "webpack";
import { rules } from "./webpack.rules";
import { plugins } from "./webpack.plugins";
export const mainConfig: Configuration = {
/**
* This is the main entry point for your application, it's the first file
* that runs in the main process.
*/
entry: "./src/index.ts",
// Put your normal webpack config below here
module: {
rules,
},
externals: ["electron", "uiohook-napi"],
plugins,
resolve: {
extensions: [".js", ".ts", ".jsx", ".tsx", ".css", ".json"],
},
};
我尝试强制 electro-forge 将 uiohook-napi 从 ASAR 存档中排除,以便它以打包形式工作。我在我的 forge 配置中使用
packagerConfig
来执行此操作,例如:
packagerConfig: {
asar: {
unpack: "node_modules/uiohook-napi/**",
unpackDir: "node_modules/uiohook-napi", // Exclude uiohook-napi from ASAR
},
},
注意:我对 Electron 比较陌生,因此对于任何初学者错误,我提前表示歉意。
在下面的问题中找到了答案。我不仅必须将 ihook 添加到 /package.json,还要添加到 /release/app/package.json。参考这个问题https://github.com/wilix-team/iohook/issues/414