3

私は DerbyJS を学んでみることにしましたが、NodeJS についてもこれが初めて知りました。

で新しい Node/Derby プロジェクトを作成しderby new fooます。node_modules/これにより、プロジェクトが依存するすべてのパッケージのコピーを含むフォルダーも作成されます。

空の Derby プロジェクトのnode_modules/サブディレクトリは 144 MB の大きさで、12967 個のファイルが含まれています (原文のまま!)。Ruby の RubyGems、RVM、Bundler に精通している者として、これは常軌を逸していると思います。私はそれがどれほど間違っているかを表現することはできません (実際、私はその狂気に対していくつかの確固たる議論を持っていますが、StackOverflow は議論の場ではありません)。

-gnpm のフラグが役立つと思いました。すべてのパッケージをグローバルにインストールできると自分に言い聞かせました。だから私はした:

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 を打ち負かさずにプロジェクトを実行できるかということです。

4

2 に答える 2

3

プロジェクトを Dropbox に保持したい場合は、Dropbox に裸の git リポジトリを作成し、それをプロジェクトのアップストリーム リポジトリとして使用します。

Dropbox 以外のフォルダーからプロジェクトを実行し、node_modules フォルダーを に追加します.gitignore

于 2013-10-02T16:52:47.517 に答える
3

npm のfaqへのこのリンクを確認してください。基本的には、npm-link コマンドを使用します。package.json を調べて、依存関係ごとにsudo npm install -g <packagename>. 次に、そのパッケージをローカル プロジェクトにリンクします (「 」を参照npm help link)。

これがデフォルトの動作ではない理由は、複数のプロジェクトの依存関係を管理するのが面倒だからです。スペースは安価であると想定されています (実際にそうです)。依存関係のコピーを保持することは、パッケージ バージョンの競合を減らすための低価格と見なされます。

于 2013-10-02T16:26:14.740 に答える