📘
DenoでVue3を動かしてみる
Nodeに替わる新しいjavascript/typescriptランタイムとして登場したDenoにはbundle機能がありdeno bundle
で複数のjsファイルを1つにまとめることができます
この機能を使ってVue3を使ったjsファイルたちをbundleしてみました
超超超簡易的なプログラムですがご容赦を・・・
まずは適当なコンポーネントSample.js
を作ります
Sample.js
export const Sample = {
data() {
return {
message: "Hello Deno!"
}
},
template: `<div>{{message}}</div>`
}
main.js
でVueインスタンスの生成、htmlへのマウントをします
(本当はjspmからVueを呼びたかったけどやり方が上手く分からなかったのでunpkgからにしてます...)
main.js
import { Vue } from "https://unpkg.com/vue@next"
import Sample from "./Sample.js"
const Main = {
template: `<Sample></Sample>`
}
app = Vue.createApp(Main)
app.component("Sample", Sample)
app.mount("#app")
マウント先のhtmlを生成します
bundleしたファイルはapp.bundle.js
として読み込むようにしておきます
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<div id="app"></div>
<script src="app.bundle.js"></script>
</body>
</html>
さて、材料はそろいましたので早速bundleしていきましょー
main.js
をrootファイルとしてapp.bundle.js
にまとめます
$ deno bundle main.js app.bundle.js
ブラウザでindex.html
を開いてみると、Hello Deno!が表示されるかと思います
今回はコマンドからDenoのbundle機能を使ってみましたが、プログラム内からでもDeno.bundle()
を呼ぶことでコマンドと似た機能を使えるそうです(使い方はイマイチわかってないです...)
今の時点ではまだunstableの機能ですが、Deno版webpack的なものがそのうち出てきたりしそうな気がしますねー
Denoのこれからが楽しみです
Discussion