tag:crieit.net,2005:https://crieit.net/tags/Deno/feed
「Deno」の記事 - Crieit
Crieitでタグ「Deno」に投稿された最近の記事
2021-03-10T07:30:31+09:00
https://crieit.net/tags/Deno/feed
tag:crieit.net,2005:PublicArticle/16727
2021-03-10T05:00:58+09:00
2021-03-10T07:30:31+09:00
https://crieit.net/posts/TypeScript-Deno
素朴な自作言語のコンパイラをTypeScript(Deno)に移植した
<p><a target="_blank" rel="nofollow noopener" href="https://memo88.hatenablog.com/entry/2020/08/30/132314">移植一覧に戻る</a></p>
<hr />
<p>TypeScript 入門というか、とりあえず何か書いて慣れようと思って書いてみました。やっつけなので汚いです。TypeScript まだよく分からないけどなんか動いたのでヨシ、というレベルのものです。<br />
(※ <a target="_blank" rel="nofollow noopener" href="https://memo88.hatenablog.com/entry/2020/08/15/114754">2020-08-15 に書いた記事</a>のクロス投稿です)</p>
<p><a target="_blank" rel="nofollow noopener" href="https://github.com/sonota88/vm2gol-v2-typescript">https://github.com/sonota88/vm2gol-v2-typescript</a></p>
<h1 id="移植元"><a href="#%E7%A7%BB%E6%A4%8D%E5%85%83">移植元</a></h1>
<ul>
<li><a target="_blank" rel="nofollow noopener" href="https://github.com/sonota88/vm2gol-v2">https://github.com/sonota88/vm2gol-v2</a></li>
<li><a target="_blank" rel="nofollow noopener" href="https://memo88.hatenablog.com/entry/2020/05/04/155425">Rubyで素朴な自作言語のコンパイラを作った</a></li>
</ul>
<p>ベースになっているバージョン: <a target="_blank" rel="nofollow noopener" href="https://github.com/sonota88/vm2gol-v2/tree/45">tag:45</a> のあたり</p>
<p>(201-03-06 追記: <a target="_blank" rel="nofollow noopener" href="https://memo88.hatenablog.com/entry/20210206_vm2gol_v2_step55_delete_set_reg_a_b">step 55 の修正</a>まで適用しました。それに伴い、アセンブラ・VM 関連のコードを <code>old_version</code> ディレクトリに移動しました。全部修正すると大変なので)</p>
<h1 id="メモ"><a href="#%E3%83%A1%E3%83%A2">メモ</a></h1>
<ul>
<li>YAML/JSON ライブラリへの依存をなくしてみた
<ul>
<li>vge コードは YAML ではなく簡単な独自フォーマットにして自力でパースするようにした</li>
<li>単に行ごとに読んで文字列か数かを判別できればよい</li>
<li>vgt コード(JSON)も自力でパースしてみた</li>
</ul></li>
<li>Ruby 版で作った出力データがすでにあるので、<br />
それに一致するように未実装部分を潰していくだけ。<br />
ゼロから作っていた Ruby 版のときに比べたら遥かに楽。</li>
<li>今回もなんとなく VM → アセンブラ → コード生成器 → パーサ<br />
の順で作ってしまって、インクリメンタルな作り方を試せばかったな……と作り終わってから思った</li>
</ul>
sonota486
tag:crieit.net,2005:PublicArticle/15901
2020-05-19T09:35:22+09:00
2020-05-19T09:36:16+09:00
https://crieit.net/posts/Deno-bundle
Denoでbundleしてブラウザで動かそうとしてみたけどうまくいかない
<p>2020/5、Deno1.0がリリースされました。せっかくなのでDenoで何かシンプルなWebアプリケーションでも作って見ようと思って試したところうまくいきませんでした。</p>
<p>具体的に何を作ろうかと思ったかと言うと、下記のものです。</p>
<ul>
<li>ReactでSSR(やる気はなかったけどたくさんサンプルがあったので)</li>
<li>Reactでブラウザ上の動作(インクリメントとか)まで確認</li>
</ul>
<p>Denoにはbundleというコマンドがあるので多分これかなと思って実行。</p>
<pre><code class="text">deno bundle client.jsx build/main.js
</code></pre>
<p>ちなみにclient.jsxはこんな感じの最低限。</p>
<pre><code class="javascript">import { ReactDOM } from 'https://dev.jspm.io/react-dom/index.js'
import App from './App.tsx'
const domContainer = document.querySelector('#app')
ReactDOM.render(App, domContainer)
</code></pre>
<p>しかしブラウザで実行してみてもうまく行かない。</p>
<p>実際にビルドされたファイルを見てみると……、やけに中身が少ない。調べてみるとなんかimportしたパッケージのURLが貼られているだけ。</p>
<pre><code class="javascript">System.register(
"App",
["https://dev.jspm.io/react/index.js"],
function (exports_1, context_1) {
</code></pre>
<p>もしかしてbundleのオプションでちゃんと全部含めるやつがあるのでは、と思ったけどそれらしきものもなし。</p>
<p>ということで、やけにDeno+ReactのSSRの記事ばかり見つかるのかと思ったら、とりあえずはランタイムとしてDenoを使う場合をメインとして作られているので、bundleについてもまだWeb向けのものは無いのかもしれない……。というところです。サーバー上で動かすだけならURLだけ分かってればなんとでもなると思うので(多分URLを元にローカルでビルド済みのキャッシュを読み込む)。ということで仕方なく断念。</p>
<p>ということで新たな(というか僕が知らない)情報&今後のアップデートに期待です。</p>
だら@Crieit開発者