8

私のノード プロジェクトでは、エントリ ポイントとして main.js を使用して独立したモジュールをフォルダーにビルドし、そのモジュールのヘルパーを別のファイルと同じフォルダーに配置します。

Ex:
Aggregator:
     |___package.json
     |___main.js
     |___node_modules
         |_____helper1.js
         |_____helper2.js

node_modulesしたがって、ノードは、ローカルフォルダーからのモジュール [例: アグリゲーター] に対するすべてのヘルパーの依存関係を解決します。上記の構造の理由は、上のパスを気にする必要がないからですrequire

requirepackage.json を使用して、Aggregator 用のエントリ ポイントが main.js であることを指定します。

Ex:
//Sample.js
require('Aggregator'); // Resolves to Aggregator/main.js

例: Aggregator モジュールの package.json

  {
        "name": "Aggregator"
      , "description": "Returns Aggregates"
      , "keywords": ["aggregate"]
      , "author": "Tamil"
      , "contributors": []
      , "dependencies": {
            "redis": "0.6.7"
        }
      , "lib"           : "."
      , "main"          : "./main.js"
      , "version"       : "1.0"
    }

ここで、依存関係の列は何ですか? このリンクを参考にしました。警告なしで redis のバージョンを 10000 に指定しても、私のコードは機能しているようです。ノードがそれを取得して依存関係を解決するかどうかをテストするために、プロジェクトから redis モジュールを削除しようとしましたが、そうではありませんでした。package.json でその依存関係属性を使用するのはいつですか? 将来の参考のための単なるメモですか?

npm バージョン 1.1.0-ベータ-4 ; ノードバージョン v0.6.6

4

2 に答える 2

10

このdependencies値は、特定のモジュール ( で表されるpackage.json) が機能するために必要な他のモジュールを指定するために使用されます。特定のモジュールのルート フォルダーから実行すると、そのハッシュnpm installにリストされているすべてのモジュールがインストールされます。dependencies

redis: 10000そこにリストされているエラーが発生しなかった場合は、 を実行したことがないnpm installため、redis をインストールしようとさえしなかったと思います。次に、コードが run なしで正常に動作している場合、コードはnpm installそもそも redis を必要としない可能性が高く、その項目はdependenciesハッシュから削除する必要があります。

のすべてのエントリをpackage.json日常の開発に理解することが不可欠というわけではありませんdependenciesが、認識しておくことは間違いなく重要です。npm web サイトの依存関係セクションを読むことをお勧めします。

于 2012-05-16T14:28:56.787 に答える