t_wの輪郭

Feedlyでフォローするボタン
あれ

Deno

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

deno

2024/11/17 23:48:00

あれ

2023/1/8 20:26:00

Denoで書いたけど、Rustに移植したくなってきた。

あれ

2023/1/6 8:18:00

Denoのv1.29.2がリリースされた。仕事から帰ってきたら『t_wの輪郭』のシステムが動くか試そう。

あれ

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も動かすことができた

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を使えるらしいので、そのようにした。

未成功
Deno v1.28.3をi686-unknown-linux-gnuをターゲットとしてビルドすると途中でエラーが生じる

Linux(WSL)でDenoをビルド

sudo apt install build-essential python3 python-is-python3 musl-tools pkg-config libglib2.0-dev ninja-build gcc-multilib -y
curl https://sh.rustup.rs -sSf | sh
cargo --version
rustc --version
rustup default stable 
rustup target add wasm32-unknown-unknown
rustup target add wasm32-wasi
rustup target add i686-unknown-linux-gnu
V8_FROM_SOURCE=1 cargo build -vv --target i686-unknown-linux-gnu --release

未成功

RustとCargoをインストール
apk add rust cargo

ソースコードをgithubのreleaseからダウンロード
wget https://github.com/denoland/deno/releases/download/v1.28.3/deno_src.tar.gz

解凍
tar -xf deno_src.tar.gz


失敗録

cargoでDenoをビルドしてインストール
cargo install deno --locked
Illegal instructionと出て停止する

あれ

2022/12/3 6:06:00

 iPad mini 6iSH Shell上でNode.jsをビルドしようとしてる。
 apk add nodejsでNode.jsを入れると、npmの実行時にエラーが発生するので、「じゃあソースからビルドして入れてみようや」となったのだった。

 Node.jsをビルドしても無理だったらDenoをインストール(もしくはビルド)してみる。