Node.jsでグローバルにインストールしたモジュールをrequireする方法 [ソフトウェア/PC関係]
最近,仕事でJavaScriptでコーディングする必要が出来て,あれこれ調べながらやってみている。JavaScriptは私のように昔から様々なプログラム言語を学んできた人間にとっては少々厄介な言語に見え,これまでにも何度か習得を試みたのだがその都度撃沈してきたのである。まぁ仕事で必要とか,真に迫った動機がなかったこともあるのだろうが。言語の指定さえなければ他にいくらでも選択肢はある。
という訳で,いろいろ調べて分かったことをこのblogにその都度記録しておこうと思う。twitterとかだと後で確認するのが面倒なので。
で早速JavaScript,というよりむしろnode.jsの話なのだが,npmを使ってsqlite3のようなモジュールをグローバルにインストールした場合,jsスクリプト内で下のように,
let sqlite3 = require("sqlite3");
とやってもモジュールが見つからないというエラーになってしまう件について。
要はアプリケーションのワークスペースを作ってローカルにインストールしてそこからスクリプトを実行するという手順を踏むのが面倒くさいというわけである。結論から言うと,NODE_PATHという環境変数に
> npm root -g
を実行して返ってきたパス文字列を設定してからnodeコマンドを実行すれば良い。それならnode.jsのインストール時に自動的に設定してくれれば良さそうなものだ。グローバルにモジュールをインストールするという仕組みがせっかくありながら,デフォルトでは利用できないというのはなんとも不可解だ。もっと調べればこの辺の事情もわかるかも知れないが,私的には使えれば良いのでここでやめておく。
コメント 0