プライベートなモジュールの共有いろいろ作っていると、TypeScriptに限らず別のプロジェクトで作ったコード使い回せそうだなとかある。(最初から使い回せるように作る場合も)C言語だとライブラリ作るんだけどNode.js、TypeScriptだとどうするんだろう?ってなったわけだ。npmの2.0からローカルにあるパッケージ(モジュールというべき?)をインストールできるようになったらしいんそれを使う。例として、複数プロジェクトで使うモジュールをcommonという名前で作る。initを実行して、package.jsonを適当に作る。このモジュールは公開しないので念のためprivateフィールドをtrueで追加する。TypeScriptの場合、typesフィールドを追加して、モジュールの型情報ファイルをしてする。true}つぎにTypeScriptの準備。--initを実行して、tsconfig.jsonを作成する。まー、特に変更するところはない。外部モジュールのコード(test1.ts)はこんな感じにして、tscを実行する。-Dを実行して型情報ファイルを生成する。(test1.d.tsができる)次にこのモジュールを使う方だ。commonディレクトリと同列(隣)にtestと言うディレクトリを作って、そこを使うことにする。--initでpackage.json、tsconfig.jsonを作成する。--saveを実行して、commonモジュールをインストールする。testプロジェクトのnode_modulesフォルダにコピーされる。commonモジュールを使うコードはこんな感じになる。"common";hoge.print();これで気になるのが、package.jsonのdependenciesフィールドにcommonが絶対ディレクトリで指定されるんだよな。他のPCに持って行ったときにちょっと困りそうだが、直接このフィールドを編集して相対パスで指定しても良さそうだ。installで型定義ファイルがコピーされなくなってる。その2どうも、.gitignoreに*.d.tsを指定していたせいみたいだ。型定義ファイルはtscで生成するからと思い.gitignoreに*.d.tsを指定していた。Qiitaラズパイでも動くんだな。|JSON5でC++やJava見たいなコメントが入っているJSONを読める。(2)が古くなったんで書き直してみた。clusterとmimeモジュールも使うようになってる。ファイルの情報を取得する。コールバック関数でファイルやエラーをクライアントに返す。エラーなら、404エラーをクライアントに返す。fs.statを呼ぶ。エラーなら、404エラーをクライアントに返す。ファイルなら、ファイルを返す。拡張子からMIMEタイプを取得してヘッダに設定する。ファイルのストリームを作って、クライアントに返す。//pipe()でresにデータを流すようにする。resはWritableインターフェイスが実装されているのでpipe()に渡すことができる。ファイルがなかったことにする。404エラーをクライアントに返す。ROMイメージを作ってみる。ファイルオープンダイアログを出す。