LoginSignup
1
0

More than 5 years have passed since last update.

Rustのwasm開発環境でwasm-bindgenを利用するようにした際のModule not found: Error: Can't resolve 'env' in 'XXX'のエラー

Last updated at Posted at 2018-10-06

wasm-bindgenを全く使わないWebAssembly開発から、同プロジェクトをwasm-bindgenを利用した環境に移行した際にハマったエラーについて解決したポイントをメモしておきます。

環境

rustのバージョン

$ rustc --version
$ rustc 1.30.0-nightly (f49f6e73a 2018-09-23)

利用しているcrateのバージョン

cargo.toml
[dependencies]
cfg-if = "0.1.2"
wasm-bindgen = "0.2"

状況

$ npm init wasm-app XXX

のように、npm環境を用意しwasmをjsからimportする環境でのwebpackによるビルド時に下記のようなエラーが発生する

$npm run build (→ webpack --config webpack.config.js)を実行

ERROR in ../pkg/wazf_bg.wasm
Module not found: Error: Can't resolve 'env' in '/var/www/wasm-fzf/pkg'

※ pkg配下にwasmが生成されるのはwasm-packによるビルドのため

解決策

rust上でJSの関数を使うためにexternしている記述を削除できれば削除してみる。
(削除できなければwasm-bindgenでサポートされている形に修正してみても良いと思います)

XXX.rsのdiff
- extern {
-     fn logging(n: i32);
- }

振り返ってみるとたったそれだけなんですが、Module not found: Error: Can't resolve 'env' ~~のエラーからはなかなかたどり着けなかったので、同じようにハマった人のため参考になれば幸いです

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0