私は DerbyJS を学んでみることにしましたが、NodeJS についてもこれが初めて知りました。
で新しい Node/Derby プロジェクトを作成しderby new foo
ます。node_modules/
これにより、プロジェクトが依存するすべてのパッケージのコピーを含むフォルダーも作成されます。
空の Derby プロジェクトのnode_modules/
サブディレクトリは 144 MB の大きさで、12967 個のファイルが含まれています (原文のまま!)。Ruby の RubyGems、RVM、Bundler に精通している者として、これは常軌を逸していると思います。私はそれがどれほど間違っているかを表現することはできません (実際、私はその狂気に対していくつかの確固たる議論を持っていますが、StackOverflow は議論の場ではありません)。
-g
npm のフラグが役立つと思いました。すべてのパッケージをグローバルにインストールできると自分に言い聞かせました。だから私はした:
derby new -n foo
cd foo
sudo npm install -g
現在、プロジェクトの重量は 152 KB で、24 個のファイルが含まれています。これは合理的です。
しかし、私はそれを実行できません。するとnpm start
、「モジュール 'express' が見つかりません」というメッセージが表示されます。
lolmaus@sandy:~/hello_derby2$ npm start
> hello_derby2@0.0.0 start /home/lolmaus/hello_derby2
> node server.js
Master pid 29884
module.js:340
throw err;
^
Error: Cannot find module 'express'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/home/lolmaus/hello_derby2/lib/server/index.js:1:77)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
問題は、どうすればプロジェクトの依存関係を中央のローカル リポジトリにインストールし、私の Dropbox アカウントから f#@k を打ち負かさずにプロジェクトを実行できるかということです。