如何获取由Webpack重命名的文件名?

时间:2019-03-06 08:42:14

标签: javascript webpack emscripten webassembly

我在我的项目中使用了Emscripten编译的Webassembly文件。 而且由于我的项目使用Webpack,因此它将重命名所有文件,因此Emscripten模块找不到更多的webassembly文件。

然后我需要获取webassembly文件的新文件名才能加载它。

我找到了this workaround,但是我想要一个更好的解决方案,因为我不想使用webpack.config.js文件的配置来更改.wasm

解释上下文:我有一个名为bursh的项目,它使用Webpack并导入一个名为scissors的模块,该模块具有webassembly文件。因此,我正在寻找一种由于职责隔离而不需要更新配置的解决方案-由于某种原因,brushscissors上设置配置是没有意义的

2 个答案:

答案 0 :(得分:0)

根据您的描述,您可能需要查看copy-webpack-plugin。 Webpack通常将多个文件捆绑为一个或几个较大的文件,但是如果您还想将文件复制到构建中,则此插件可以做到这一点。

答案 1 :(得分:0)

我解决了这个问题。我的解决方案是在scissors添加Webpack,以便在此项目中设置配置。

const path = require('path')

const rules = [
  {
    loader: 'file-loader',
    test: /huffman\.wasm$/,
    type: 'javascript/auto',
  },
]

rules.concat()

module.exports = {
  devtool: 'source-map',
  entry: './src/index.js',
  module: {
    rules,
  },
  node: {
    fs: 'empty',
  },
  output: {
    filename: 'scissors.js',
    libraryTarget: 'commonjs2',
    path: path.join(__dirname, './dist'),
    sourceMapFilename: 'scissors.js.map',
  },
}

我不知道这是否是最好的解决方案,因为现在我在brush项目和scissors项目中都有一个Webpack,那么它将增加我的代码的复杂性...但是这样我就可以保持职责隔离。