Add wasm-bindgen to Vue config (#38)

This commit is contained in:
TrueDoctor 2021-03-23 08:54:03 +01:00 committed by Keavon Chambers
parent f022bd67a9
commit 76043cebcb
3 changed files with 32 additions and 2 deletions

View File

@ -26,7 +26,7 @@
"@vue/compiler-sfc": "^3.0.7",
"@vue/eslint-config-airbnb": "^5.0.2",
"@vue/eslint-config-typescript": "^5.0.2",
"@wasm-tool/wasm-pack-plugin": "^1.3.3",
"@wasm-tool/wasm-pack-plugin": "github:wasm-tool/wasm-pack-plugin",
"eslint": "^6.7.2",
"eslint-plugin-import": "^2.20.2",
"eslint-plugin-vue": "^7.8.0",

30
client/web/vue.config.js Normal file
View File

@ -0,0 +1,30 @@
const WasmPackPlugin = require("@wasm-tool/wasm-pack-plugin");
const webpack = require("webpack");
const path = require("path");
module.exports = {
chainWebpack: config => {
// rust wasm bindgen https://github.com/rustwasm/wasm-bindgen
config
.plugin("wasm-pack")
.use(WasmPackPlugin)
.init(
Plugin =>
new Plugin({
crateDirectory: path.resolve(__dirname, "wasm")
})
)
.end()
// needed for Edge browser https://rustwasm.github.io/docs/wasm-bindgen/examples/hello-world.html
.plugin("text-encoder")
.use(webpack.ProvidePlugin)
.init(
Plugin =>
new Plugin({
TextDecoder: ["text-encoding", "TextDecoder"],
TextEncoder: ["text-encoding", "TextEncoder"]
})
)
.end();
}
};

View File

@ -11,7 +11,7 @@ module.exports = {
plugins: [
new HtmlWebpackPlugin({ title: "Graphite" }),
new WasmPackPlugin({
crateDirectory: path.resolve(__dirname, "..", "packages", "wasm-bindings"),
crateDirectory: path.resolve(__dirname, "wasm"),
outDir: path.resolve(__dirname, "pkg"),
}),
],