node.js - Electron:包含 Webpack 的二进制依赖项

标签 node.js typescript webpack binary electron

我正在尝试在我的 Electron 项目中使用 Webpack 将 Typescript 代码捆绑到我的主进程中(渲染器是一个使用 CLI 管理的 Angular 项目)。

但是在我的主进程中我依赖 registry-js :

import { enumerateValues, HKEY } from "registry-js";

Registry-js 构建为 .node-binary。所以我的问题是如何将其包含在我的 bundle 中?目前我的 webpack.config.js 看起来像这样:

const path = require("path");

module.exports = {
  entry: "./main.ts",
  target: "electron-main",
  output: {
    path: "./dist-main",
    filename: "main.bundle.js",
  },
  mode: "production",
  module: {
    rules: [
      {
        test: /\.ts?$/,
        use: "ts-loader",
        exclude: /node_modules/,
      }
    ],
  },
  resolve: {
    extensions: [".ts", ".js"],
    alias: {
      "registry-js": path.join(__dirname, "node_modules/registry-js/build/Release/registry.node"),
    }
  }
};

当我启动应用程序时,出现TypeError: Cannot read property 'HKEY_LOCAL_MACHINE' of undefined

我可以做什么来将二进制文件包含在我的 Webpack 构建中,以便能够在开发模式和生产构建中运行我的应用程序?

最佳答案

Webpack 无法捆绑 native 插件模块。您应该使用适当的加载器,例如node-loader或node-addon-loader,并在创建包时复制二进制文件。

关于node.js - Electron:包含 Webpack 的二进制依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57659522/

相关文章:

javascript - 为什么 webpack 不使用我的 .map 文件?

node.js - 仅当 mongodb 中的 operationType 为 'update' 时才过滤

node.js - 在 root 模式下设置 Node-red 密码

TypeScript 通用键/属性类型保护

javascript - 扩展 HTMLTextAreaElement 的 HTML5 ES6 自定义元素使非法构造函数崩溃

webpack - webpack 中的 "pragma style"是什么意思?

javascript - NextJS 页面名称与 url 名称不同

node.js - 如何构建等待进程首先完成的 Mocha 测试?

javascript - 导入导出默认类的节点模块会导致 'module' 而不是 'constructor'

javascript - 为什么 React 源在调试器中包含两次?