繁体   English   中英

无法在电子锻造应用程序中使用本机节点模块

[英]cannot use native node module in electron-forge app

我正在尝试在使用webpack模板通过电子锻造创建的 electron 应用程序中使用 pkcs11js。

但我得到了错误

Error: C:\ws-p\electron-test\.webpack\main\349a63bd9833f80e7879a5bbfb2a4af2.node is not a valid Win32 application.
←[90m    at Object.Module._extensions..node (internal/modules/cjs/loader.js:1122:18)←[39m
←[90m    at Module.load (internal/modules/cjs/loader.js:928:32)←[39m
←[90m    at Function.Module._load (internal/modules/cjs/loader.js:769:14)←[39m
←[90m    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)←[39m
←[90m    at internal/main/run_main_module.js:17:47←[39m

周围有很多问题,但到目前为止,没有一个提供的解决方案/答案对我有用。

这些都没有解决:

  • 删除并重新安装 node_modules
  • 使用electron-rebuild (虽然电子锻造在内部使用它)
  • 为 package 手动使用node-gyp rebuild --target=13.1.0 --arch=x64 --dist-url=https://electronjs.org/headers //electronjs.org/headers
  • electron 文档中定义的Npm步骤

环境

Windows 10 Pro
Node 14.16.1
electron: 13.1.0
electron-rebuild: 2.3.5
electron-forge: 6.0.0-beta.57
pkcs11js: 1.2.4

您应该使用 Electron Forge Webpack 模板,它对原生模块有更好的支持。

此功能目前存在一个未维护的问题,这是由过时/未维护的@marshallofsound/webpack-asset-relocator-loader引起的,它通过 Webpack 满足本机模块的需求。 我目前正在做一个PR来解决这个问题,但与此同时你可以使用我更新的 fork

web 上的解决方案都不适合我。 有效的方法是将electron-gyp gyp output 文件夹定义为electron-rebuild之前的主页或在依赖项安装之后/之前使用电子锻造。

在终端中:

Windows:

set HOME=C:\Users\YourUser\.electron-gyp
npm i
npm run start <# which resolves to electron-forge start #> 

Unix:

$ export HOME=~/.electron-gyp
$ npm i
$ npm run start # which resolves to  electron-forge start

我希望它对某人有帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM