【问题标题】:Electron: Include binary dependency with WebpackElectron:使用 Webpack 包含二进制依赖项
【发布时间】:2019-12-30 17:46:10
【问题描述】:

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

但在我的主要流程中,我依赖于registry-js

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

Registry-js 构建为.node-binary。所以我的问题是如何将它包含在我的捆绑包中?目前我的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 构建中包含二进制文件,以便能够在开发模式和生产构建中运行我的应用程序?

【问题讨论】:

    标签: node.js typescript webpack binary electron


    【解决方案1】:

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

    【讨论】:

    • 你能告诉我怎么做吗?我试过但没能理解如何使用 node-loader。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-26
    • 2019-04-22
    • 2023-03-14
    • 1970-01-01
    • 2021-03-21
    • 2017-06-03
    • 1970-01-01
    相关资源
    最近更新 更多