如何使用node-loader和native addon的相对路径

时间:2018-04-29 18:27:41

标签: node.js webpack electron

我有一个我正在使用的原生插件,它在我的开发机器上工作得很好但是在任何其他机器上都失败了,因为webpack构建使用了本机模块的绝对路径而不是相对的路径。这是我得到的错误:

/main.prod.js:7543: Uncaught Error: Cannot open /Users/.../app/lib/main.node: Error: dlopen(/Users/.../app/lib/main.node, 1): image not found

在我的main.dev.js中,我导入了这样的文件:import main from './lib/main.node'; 在webpack配置中,我为.node添加了模块测试:

export default {
  externals: Object.keys(externals || {}),

  module: {
    rules: [{
      test: /\.jsx?$/,
      exclude: /node_modules/,
      use: {
        loader: 'babel-loader',
        options: {
          cacheDirectory: true
        }
      }
    }, {
      test: /\.node$/,
      use: 'node-loader'
    }]
  },
...

如何确保我的main.node文件为构建打包并通过相对路径导入?

1 个答案:

答案 0 :(得分:1)

我可以通过切换到node-addon-loader的修改版本来解决此问题。 https://github.com/smt116/node-native-ext-loader