wasm-tool / wasm-pack-plugin

webpack plugin for Rust
MIT License
314 stars 70 forks source link

./pkg created by default when wasm is located in a different folder #93

Open carlosouro opened 4 years ago

carlosouro commented 4 years ago

If you have a crateDirectory located elsewhere in your filesystem, the plugin will still create an empty ./<outDir> folder locally to the main build process root.

Example:

new WasmPackPlugin({
  crateDirectory: path.resolve(__dirname, "./myRustPlugin")
})

This would create an empty pkg subfolder in ./pkg, and not in ./myRustPlugin/pkg as expected (and according to wasm-pack build).

Note that currently it is possible to workaround this issue by enforcing a full qualified path outDir to the destination pkg location, like so:

new WasmPackPlugin({
  crateDirectory: path.resolve(__dirname, "./myRustPlugin"),
  outDir: path.resolve(__dirname, "./myRustPlugin/pkg")
})

But if you simply use outDir: "build" or leave outDir to the "pkg" default, the problem arises.

The problem appears to be here: https://github.com/wasm-tool/wasm-pack-plugin/blob/a0b20c0cdf28f0bb5e4156140e4bc66412df4ecc/plugin.js#L98

kopotp commented 4 years ago

same for me

Directory commented 3 years ago

The issue with this workaround for me at least is that the pkg directory isnt empty. it contains a single empty index.js. when forcing it to use the same pkg directory as where the rust code really is supposed to compile to it overwrites the ledgitamate index.js file with an empty one. and now it cant be imported.

wleslie commented 3 years ago

This issue may overlap with a few other open issues: #74, #81, #87