何をやりたかったかというと、「Node.js用に書いたコードをDenoでも動かしたい」というのが動機です。
以前さくらのナレッジに寄稿したとおり、Denoではモジュールの指定に拡張子が必須になったので、従来のNode.jsのコード(特にTypeScriptで書いている場合)はそのままでは動きません。
そこで、拡張子を解決するツールを作ってやればDenoでも動かせるんじゃね?と思いました。
はい。何のひねりもない名前です。
使い方は簡単で、コマンドラインから
deno-module-extension-resolver SRC_DIR DST_DIRと実行すると、
SRC_DIR
内にある*.js
/*.ts
を再帰的に探す-
見つけたファイル内にある
import
文から、import
対象のファイルの拡張子を解決する -
解決したソースコードは
DST_DIR
に元のディレクトリー構造を保ったまま同じ名前で保存する
ただし、
import
対象が絶対パスでも相対パスでもない場合(import "foo"
など)や解決できるファイルが存在しない場合は何も手を加えません。
ちなみにvalue-schemaはNode.jsにもDenoにも対応していますが、Deno対応にはこのツールを使っています。
使用上の注意
お気づきの通り、このツールはあくまで絶対パスまたは相対パスで指定されたimport文の拡張子を解決するだけであって、それ以外のNPMモジュールやコアライブラリーに対しては無力です。
つまり、このツールでDeno対応できるのは、もともと外部のNPMモジュールにもコアライブラリーにも依存しておらず、自己完結しているものだけです。
0 件のコメント:
コメントを投稿