www.sfpgmr.netのテコ入れをはじめる。
横スクロール・アクションを作りたいという熱意はintellisenseという大いなる壁に阻まれにっちもさっちもいかないうちにちょっと冷めてきてしまった。歳を取ってくるとほんとに熱意とかモチベーションとかすぐ萎えてしまう。もともと根気のない人間ではあるが若いころはもうちょっとましだったように思う。
それはさておき、そのゲームをホストするベースとなるwww.sfpgmr.netサーバーはブログの移転により閑古鳥が鳴き、寂しい限りである。ここは一つテコ入れを行おうと昨日から取組みはじめた。intellisense問題も一段落?したような気もするので。
まずは環境を整理した。作成とチェックはWin8.1マシンで行う。ツールはVS2013 Express。まずはwww.sfpgmr.netのコンテンツはgitで管理すべくgithubのレポジトリに登録した。さらには作成環境にcloneした。
npm install -g
node.js環境も整理していたところnpm install -g
したモジュールがrequire
できないことを思い出した。エラー内容としてはモジュールが見つからないというエラーだ。Pathに絡むものそうだということはなんとなくわかっていたが、とりあえずはローカルでnpm install
することでごまかしていた。
ネットで情報がないか調べたところ、どうもデフォルトではnpm install -g
でインストールされるPath(C:\Users\(ユーザー名)\AppData\Roaming\npm\node_modules)
はrequire
が参照するPathには含まれないことがわかった。何ということだ。require
で参照するPathはデフォルトでは以下となっている。
- (カレントディレクトリ)\repl\node_modules
- (カレントディレクトリ)\node_modules
- (カレントディレクトリの1つ親のディレクトリ)\node_modules
- 3.をドライブのルートディレクトリになるまで繰り返し
H:\pj>node
> global.module.paths
[ 'H:\pj\repl\node_modules',
'H:\pj\node_modules',
'H:\node_modules' ]
>
これを解消する方法は3つほどある。
NODE_PATH
でグローバルにモジュールが格納されるPathを指定する。global.module.paths
にグローバルにモジュールが格納されるPathをpush
する。npm link
グローバルにモジュールが格納されるPathをローカルのnode_modulesにリンクする。
1番目と2番目の方法はintellisenseが効かない。またしてもintellisenseの罠に引っかかったよ。。どうもローカルのnode_moduleでないとintellisenseが効かない仕様のようだ。。しょうがないので3番目の方法で行くことにしよう。しかしintellisenseにこうも左右される人ってそうそういないだろうね。どれだけ記憶力がないんだか。。