t_wの輪郭

Feedlyでフォローするボタン

Deno

2022/12/3 5:59:00
『Build an Astro site with Deno』Deno 2「Deno 2 is backwards compatible with Node and npm」『Deno 2.0リリース ―大規模プロダクトにも対応可能なJavaScript環境へ | gihyo.jp』あれDeno SubhostingあれiSH ShellでDenoをソースコードからビルドしてインストールiSH ShellにDenoをインストールあれ『Jupyter Kernel for Deno』deno jupyterあれあれDeno 1.28.3ではExpressは動かない機能があるあれ『時代はDeno、node_modulesとおさらばだ、Denoでexpressサーバーを立ち上げる』Deno deployAWS Lambdaのカスタムランタイムでdenoを動かすとコールドスタートでも10msで立ち上がるecosystem.config.cjs(dlt_crawler.jsをPM2を通してdenoで動かす)2022年12月3日日記『Deno 1.28登場、npm対応が安定版に到達。130万種以上のnpmモジュールを利用可能に』あれあれ

2022年12月3日日記

2022/12/4 0:05:00

 丸一日、iSH ShellにDenoをインストールするためのビルドに費やした。結果的にうまくいかなかった。そのうちリベンジしたい。
 一旦、iPadでウェブアプリ開発するのは諦めかも。
 AWS Cloud9も試したが、あまり使い心地が良くなかった。『iPadだけでCloud9開発環境を構築してみた話』に詳しい辛みが載っている。


 『t_wの輪郭』Node.jsからDenoに乗せ換える作業を始めた。手始めに、dlt_crawler.jsをDenoで動くようにした。
 サーバーサイドでdenoをどうやって動かすかだがPM2Denoを使えるらしいので、そのようにした。

あれ

2022/12/4 14:50:00

DenoExpress使って静的にファイルをホスティングしようとすると固まってしまう。エラーも出ないので原因がわからない。

あれ

2022/12/4 14:49:00

『時代はDeno、node_modulesとおさらばだ、Denoでexpressサーバーを立ち上げる』

いや、Expressサーバー無理だったが。Deno 1.28.3ではExpressは動かない機能がある


Deno 1.28におけるnpmの互換性はまだ完璧ではなく、いくつかのエッジケースによって非互換のnpmモジュールもある

Expressはエッジケースとは言い難くないか……?
まだDenonpmを使っていくのは難しいという印象。

あれ

2022/12/4 14:40:00

DenoExpressを動かしてみてるけど、res.renderで固まる。
import ejs from "npm:ejs";を追加したら動いた。

あれ

2022/12/4 0:21:00

ブログのシステムをdenoに移行してみる。node modulesがなくせるらしいので。


Windowsにdenoをインストールした


denoでpostgresql serverに接続できん


import pg from 'npm:pg';して、deno run --allow-net --allow-readで実行したら行けたわ


new JSDOM('<html></html>');で以下のエラーになってしまう
error: Uncaught Error: Not implemented: isContext


import { DOMParser, Element } from "https://deno.land/x/deno_dom/deno-dom-wasm.ts";で行けたわ


const doc = new DOMParser().parseFromString(
    `<a href="https://example.com">link</a>`,
    "text/html",
);
console.log(doc.querySelector("a").href);
console.log(doc.querySelector("a").textContent);
undefined
link

え~~~~~~~~~~~~~


const doc = new DOMParser().parseFromString(
    `<a href="https://example.com">link</a>`,
    "text/html",
);
console.log(doc.querySelector("a").href);
console.log(doc.querySelector("a").getAttribute("href"));
console.log(doc.querySelector("a").textContent);
undefined
https://example.com
link

解決したけどやや不本意


ガチャガチャ触ってたらnode.jsで動かしてたクローラーがdenoで動くようになりました🎉


サーバーの方でもクローラーがdenoで動くようになりました🎉
node.jsを動かすpm2っていうのがあるんだけど、pm2を使ってdenoも動かすことができた