Open SillyFreak opened 5 years ago
If you have placed in the js/
folder
../../js/helper
I recreated the project using these commands
npm init rust-parcel hello-web2
cd hello-web2
npm install
then applied the following changes (i.e. add the js/helper.js
file, add the wasm_bindgen
and a call to foo
)
diff --git a/crate/src/lib.rs b/crate/src/lib.rs
index 6b121e9..391a973 100644
--- a/crate/src/lib.rs
+++ b/crate/src/lib.rs
@@ -24,9 +24,16 @@ cfg_if! {
}
}
+#[wasm_bindgen(module = "../../js/helper")]
+extern "C" {
+ pub fn foo();
+}
+
// Called by our JS entry point to run the example
#[wasm_bindgen]
pub fn run() -> Result<(), JsValue> {
+ foo();
+
// Use `web_sys`'s global `window` function to get a handle on the global
// window object.
let window = web_sys::window().expect("no global `window` exists");
diff --git a/js/helper.js b/js/helper.js
new file mode 100644
index 0000000..d8791a0
--- /dev/null
+++ b/js/helper.js
@@ -0,0 +1,3 @@
+export const foo = () => {
+ console.log("foo");
+};
and then started it using npm run start
. The build is successful (as it was with my other tests), but it still gives me the same result. In Chrome:
localhost/:1 Uncaught (in promise) TypeError: WebAssembly Instantiation: Import #0 module="../../js/helper" error: module is not an object or function
Can you check with the latest version v0.0.2
?
Unfortunately still the same, both on master
and 0.0.2
. I take it it's not reproducible on your end?
I've added the following code to
lib.rs
(see here):(plus a call to
foo
inrun()
) and tried to figure out where to placehelper.js
, but everywhere I've tried (project root,js/
,crate/
,crate/src/
,crate/pkg/
) doesn't work. I have the feeling the file is ignored entirely; should this be working, and if so, how?I'm on Linux and using
npm run start
for my tests.