前回、TypeScriptでprocessを使うのに@types/nodeをインストールしたけど-gを付けていたのでダメだった、という話をした。
そういえば・・・nodeのライブラリ検索は常に"node_modules"というディレクトリ名で、それをカレントからルートまで順にたどっていくというやり方だったと思う。
ならば、ツールのように実行するものは-gでインストールして動くが、ライブラリは-gだとダメなんじゃなかろうか?
いや・・・しかし importも requireもないのに検索するのだろうか?
コンパイルして生成したファイルには、node.d.tsのような記載はない。というか、ほとんどtsファイルと同じだ。
package.jsonの"dependencies"に"@types/node"が追加されたので見に行っているのかと思ったが、外しても動作した。
ということは、Node.jsか?
でも、Node.jsが処理するなら declareは使えないんじゃないだろうか。
あれ、そういえば declareは TypeScript専用なのだろうか? Mozilla.orgでは出てこなかったのだが。もし TypeScriptの予約語なら Node.jsでは解釈できないと思うのだ。
しかし、 node_modules/@types/node には tsファイルしかない。まあ、拡張子が tsでも Node.jsは気にしないだろうが、TypeScriptにしかないキーワードが出てくれば処理できないだろう。
それに、node_modules/@types/node/process.tsをリネームしてみたが、関係なくコンパイルも実行もできた。node_modules を削除しても実行できるので、 process.exit()を tscするときに使うのだな。
関係ないけど、インストールするときに"--save-dev"と書いてあるのが気になった。
どういう意味なのか?
common options: [-P|--save-prod|-D|--save-dev|-O|--save-optional] [-E|--save-exact] [-B|--save-bundle] [--no-save] [--dry-run]
他にもsaveのオプションがあるのか。
* `-P, --save-prod`: Package will appear in your `dependencies`. This is the
default unless `-D` or `-O` are present.* `-D, --save-dev`: Package will appear in your `devDependencies`.
* `-O, --save-optional`: Package will appear in your `optionalDependencies`.
何も付けない場合は "--save-prod" と同じ扱いで "dependencies"に追加される。
製品版と開発版とか、そういうのをきっちり分けるときに使い分けるのだろうか?
ここら辺はそのうち調べよう。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。