Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9412

Denoで使えるNode.jsライブラリ集

$
0
0
一時期「DenoではNode.js向けのライブラリが使えないのでは…」みたいな噂があったりしたのですが、最近ではNode.js組み込みライブラリのPolyfillも進行しており、Denoで使えるNode.jsライブラリが増えています。 また、最近ではDenoにNode.js互換モードの--compatフラグが追加されたり、Deno向けに書かれたライブラリをNode.js向けに変換するdntというツールや、Deno標準ライブラリのPolyfillをNode.js向けに提供するdeno.nsが公開されました。 今後は、 - deno標準ライブラリ内でNode.js組み込みライブラリのPolyfill - deno.nsやdnt内でDeno標準ライブラリのPolyfill(Node.js向け) - Node.jsにURL importが導入(https://github.com/nodejs/node/pull/36328) - Denoに--compatフラグ下でのrequire&node_modulesサポートが導入 という流れで、Node.jsからDenoへの移行がやりやすくなるでしょう。 このように、将来的にはNode.jsとDenoの互換性が向上すると思いますが、現在でもDenoでNode.js向けのライブラリを使うことはできます。この記事ではそれを紹介します。 ポート(移植)されたもの 人気ライブラリはNode.jsからDenoへポート(移植)されています。 lodash lodashは配列操作等のユーティリティ系ライブラリです。 koa koaはexpressライクなルーティングライブラリです。 React・Next.js Reactはフロントエンドフレームワークです。 Aleph.jsという名前で移植されました。 NanoJSX 軽量なJSXライブラリです。 jsdom HTMLをパースし、DOM操作するライブラリです。 puppeteer ブラウザを自動操作するためのライブラリです。 dotenv .envファイルから環境変数を読み取り設定するライブラリです。 twind CSSフレームワークです。 axios PromiseベースのHTTPクライアントです。 Go標準ライブラリ Node.jsのライブラリではありませんが、Go標準ライブラリの一部はDeno標準ライブラリに移植されています。 ここで紹介したのはほんの一例です。 Node.jsから移植されたライブラリは他にもたくさんあると思うので、見つけたらぜひコメント欄で紹介してください。 CDN経由で利用できるもの https://esm.sh/, https://www.skypack.dev/, https://unpkg.com/, https://jspm.org/ といったCDNからURLインポートすることで、Node.jsライブラリを利用することができます。 詳しくはマニュアルを参照してください。 Firebase 詳しくは「deno deploy - Firebaseを使用してデータを永続化する」を参照してください。 import firebase from "https://cdn.skypack.dev/firebase@8.7.0/app"; import "https://cdn.skypack.dev/firebase@8.7.0/auth"; import "https://cdn.skypack.dev/firebase@8.7.0/firestore"; marked markedはマークダウン形式のテキストをHTMLに変換するライブラリです。 import marked from "https://esm.sh/marked@3.0.4"; console.log(marked("markdown text")); spotify-web-api-ts spotify-web-api-tsはspotify APIを呼び出すライブラリです。 import { SpotifyWebApi } from "https://esm.sh/spotify-web-api-ts"; const spotify = new SpotifyWebApi({ accessToken: "<アクセストークン>", }); const res = await spotify.player.getRecentlyPlayedTracks({ limit: 50 }); console.log(res) ここでは自分が使ったことがあるライブラリに限って紹介しました。 理論上は、使用しているNode組み込みライブラリがポリフィルされていて、FFIを利用したdll呼び出しをしていなければ、どんなライブラリでも動作するはずです。 しかし、実際は - window.locationを使用している - if (typeof window)みたいなコードで環境がNode.jsかブラウザかを判別している - XMLHttpRequestに依存している といった場合にエラーが出る可能性があります。 そういう時はwindow.loationを設定したり、https://deno.land/x/xhr を使用してXMLHttpRequestをポリフィルしたりすると動くようになります。 こちらも、動作するライブラリを見つけたらぜひコメント欄で紹介して頂けると嬉しいです。

Viewing all articles
Browse latest Browse all 9412

Trending Articles