[Rust004] JavaScriptでWebpackをやってrust-wasmに戻る
※この記事には技術的新規性はなく、他の記事を試した感想を述べるものです。
前回、RustのWasmをやる中で、webpackがわかっていない事が発覚しました。そのため、webpackで検索して最初に出てくる記事を勉強しています。
webpackとBabelの基本を理解する(1) ―webpack編―
https://qiita.com/koedamon/items/3e64612d22f3473f36a4
ポイントは、“基本機能はあくまで一つのJavaScriptファイルにまとめる”というところです。
ほうほう。何やら読んで行くと、あるjsがexportしているものをimportするみたいな構造が連鎖している場合に、それらを芋づる式に捕まえて連結してくれるらしいです。今の所は何が嬉しいのかよくわからないです。いくつか書かれていはいます。なんとなくわからなくもないです。
・名前の衝突
・参照ファイル数が多いとブラウザからのリクエスト数が増える
実際にやってみたところ
「npm init」でプロジェクト(語彙力)を作成し、「webpack」と「webpack-cli」を入れていくらかimport / exportしたソースを書き、「npx webpack」すると、確かに前評判通り、「連結したjs」が生成されて、それをnodeで実行するとhello worldが実行できました(語彙力)。
例えば途中、こういうのを書きます。
//webpack.config.js
module.exports = {
entry: './src/index.js',
output: {
path: __dirname + '/dist',
filename: 'sample.js'
}
};
確かに基礎は簡単です。つまり、ある一定単位でJSをバンドル(語彙力)する構造をちゃんと作ってモジュール化(語彙力)していけば、単体単体でJSを利用するよりは、使いやすくて処理効率も良いという事なんでしょう。
さて前の記事の疑問に戻ります。前回のrust-wasmの記事から参照していた別ページの記事に戻りますと、「webpack.config.jsにwasm-pack-pluginを追加することで、Webpackからwasm-pack buildを実行出来ます」とあります。なるほど、pluginというフィールド(語彙力)があって、このタイミングでrustをいい感じにjs的に扱えるということですかね(よくはわかってない)。
module.exports = {
mode: “production”,
entry: {
index: “./js/index.js”
},
output: {
path: dist,
filename: “[name].js”
},
devServer: {
contentBase: dist,
},
plugins: [
new CopyPlugin([
path.resolve(__dirname, “static”)
]),
// WasmPackPluginを追加する
new WasmPackPlugin({
crateDirectory: __dirname,
extraArgs: “ — out-name index”
}),
]
};
ひとまずはwebpack、完全に理解しました。
この記事が気に入ったらサポートをしてみませんか?