package.json---解析

3396 ワード

昔はチェット大師のjavascript標準参考教程を見ました.前と隣の妹紙はdependenciesとdevDependenciesについて討論しましたが、やはり知識点を整理したいです.(道理を説明します.ブログを使って一ヶ月以上、知識点を整理しました.思い出せない時に調べに来ます.便利です.新しい技能get.[]~( ̄▽ ̄)~*)
各項目のルートディレクトリには、一般的に一つのpackage.jsonファイルがあり、項目を定義するために必要な各種モジュールと、プロジェクトの配置情報があります.npm installはこのプロファイルに基づいて、必要なモジュールを自動的にダウンロードします.つまり、プロジェクトを配置するために必要な運行と開発環境です.package.jsonファイルは手動で作成できます.npm initコマンドで自動的に生成できます.項目名とプロジェクトバージョンは必ず記入します.他は全部選択して作成します.
一番簡単なpackage.json
{
    "name":"aaa",       //    
    "version":"0.0.0"   //    (   .    .   )
}
packageはJSONオブジェクトであり、対象の各メンバーは現在のプロジェクトの設定である.
スクリプトフィールド
スクリプトコマンドを実行するnpmコマンド行の略語をscriptが指定します.
"script":{
    "start":"node index.js",
    "test":"tap test/*.js"
}
//  npm run start ,  node index.js  
//  npm run test ,  tap test/*.js  
dependenciesフィールド、devDependenciesフィールド
dependenciesフィールドは、プロジェクトの実行に依存するモジュールを指定します.devDependenciesフィールドはプロジェクト開発に必要なモジュールを指定します.
{
    "devDependencies":{
        "browserify":"~13.0.0",
        "babel-core":"^6.5.0"       
    }
}
//   :     
対応するバージョン:
  • バージョンを指定します.例えば、1.2.2、指定バージョン1.2.2
  • のみをインストールします.
  • ウェーブナンバー(tilde)+指定バージョン:例えば、1.2.2より低い1.2.xの最新バージョンをインストールしないという意味ですが、1.3.xはインストールされません.小バージョンに影響を与えるだけのバージョン番号と同じです.
  • 挿入番号(caret)+指定バージョン:たとえば^1.2.2、インストールが1.2.2以下の1.x.x最新バージョンではないことを示していますが、2.2 x.xはインストールされません.大きなバージョン番号に影響しないと同じです.大きなバージョン番号が0の場合、挿入番号と波番号の効果は同じです.セカンダリバージョン番号は変わりません.
  • latest:最新バージョンをインストールし、モジュールがPackage.jsonファイルにまとめられていない場合は、このモジュールを単独でインストールし、該当するパラメータを使ってPackage.jsonに書き込むことができます.
     $ npm install express --save
     $ npm install express --save-dev
    
  • たとえば上のexpressモジュールをインストールします.–saveはモジュールをdependencies属性に書き込むと表しています.–save-devはモジュールをdevDependencies属性に書き込むと表しています.
    peerDependencies
    プロジェクトはAモジュールとBモジュールの1.0バージョンに依存すると仮定して、中にA:1.0、B:1.0と書くように依頼しますが、Aモジュール自体はBモジュールの2.0バージョンに依存しています.これはとても気まずいです.この場合は、Aモジュールに必要なメインツールのバージョンを指定するために、peerDependenciesを使うことができます.
    {
        "name": "chai-as-promised",
        "peerDependencies": {
            "chai": "1.x"
          }
    }
    
    Aモジュール内部のパッケージに書き込みます.ということは、chai-as-promisedをインストールする時、chaiは一緒にインストールしなければなりません.プロジェクト指定の依存がchaiの2.0バージョンであれば、エラーが発生します.npmは3.0バージョンからpeerDependenciesを標準でインストールしません.-......
    binフィールド
    binは、各内部コマンドに対応する実行可能ファイルの位置を指定します.
    "bin":{
        "someTool":"./bin/someTool.js"
    }
    //someTool          bin     someTool.js
    
    メインフィールド
    mainフィールドでロードされたエントランスファイルを指定します.require(‘moduleName’)はこのファイルをロードします.デフォルトはルートディレクトリのindex.jsです.
    configフィールド
    環境変数への出力値
        {
          "name" : "foo",
          "config" : { "port" : "8080" },
          "scripts" : { "start" : "node server.js" }
        }
    
    //server.js引用フィールドの値http.create Server..listen
    browserフィールド
    ブラウザ用のテンプレートのバージョンを指定します.
    engiesフィールド
    指定項目に必要なnode.jsバージョン
    マンフィールド
    現在のモジュールのman文書位置を指定します.
    preferGlobalフィールド
    このモジュールをグローバルモジュールにインストールしない場合、警告を表示しますか?
    スタイルフィールド
    ブラウザで使用するスタイルファイルの場所を指定します.
    私は阮大師の文書を見て大体書きました.自分の記憶を深めます.先ほどのプロジェクトで依存問題に遭遇しました.本当に役に立ちました.すごいですリンク先:http://javascript.ruanyifeng.com/nodejs/packagejson.html#toc0