2016-12-14 6 views
0

prestartセクションにnpm installnpm install base1の両方が必要なのはなぜですか?npmのインストールが&& npm install <pack-name>はどちらも必須ですか?

npm installがGitからbase1を取得した場合、なぜnpm install base1prestartに記載する必要がありますか? 1つのNode.jsのプログラムについては

私はここに示されているpackage.jsonを見た:

{ 
    "name": "user01", 
    "version": "1.5.1", 
    "description": "", 
    "author": "", 
    "private": "true", 
    "main": "app.js", 
    "scripts": { 
    "start": "node app.js", 
    "prestart": "npm install && npm install base1 && npm install base2" 
    }, 
    "dependencies": { 
    "ain2": "*", 
    "body-parser": "^1.15.0", 
    "express": "^4.13.3", 
    "uuid": "*", 
    "request": "^2.69.0", 
    "traverse": "*", 
    "base1": "git+ssh://xxxxxxxxxxx/base1.git", 
    "base2": "git+ssh://xxxxxxxxxx/base2.git" 
    } 
} 
+0

npmレジストリで 'base1'と' base2'を利用できますか? – Matt

+0

base1とbase2は、他のチームが作成したモジュールで、gitでチェックされていません。 git urlを使ってそれを引っ張ってください。 – Madrini

+0

ah nevermind ..パッケージがpackage.jsonにリストされているように見えますが、 'npm'はまずローカル定義を調べることを知っています。 – Matt

答えて

0

最初の実行は、パッケージを取得することで、第二は、基本的にそれらを初期化することです。 (パッケージディレクトリ、引数なしで)

npm install

NPMをインストールします。

ローカルnode_modulesフォルダ内の依存関係をインストールします。

パッケージ

npm install <folder> NPMをインストール:ファイルシステム上のフォルダに座っているパッケージをインストールし

を。

出典:NPMJS

+0

'base1'と' base2'はnpmsの参照フレームから 'node_modules/base [12]'にインストールされます( 'package.json'がどこにいても)。 – Matt

+0

npmはnode1とbase2をnode_modulesにインストールしてインストールします。次に、このnpmがbase1をインストールする余分なことは何ですか? – Madrini

0

追加コマンドがGitのリモートが毎回フェッチされる2 @ NPMの3つのまたは最近のバージョン@ NPMで何もしないかもしれません。 previous git issuesのコードでは最新のコミットに更新されず、npm install(v0.12リリースに戻っています)の回避策になる可能性があります。パッケージを指定すると、最新バージョンのコードを強制的にgitから取得することができます。これは、パッケージがすでにインストールされているときは、npm installは実行しません。

現在発生していることを確認するには、git base1パッケージの相違点を確認してください。

rm -rf node_modules/base1 
npm install -d 

rm -rf node_modules/base1  
npm install -d base1 

rm -rf node_modules/base1 
npm install -d 
npm install -d base1 

のgitのコードが更新されました、これは彼らの目的だった場合、余分なインストールはおそらく、もはや必要とされていないモジュール

npm install -d 
npm install -d base1 

を削除せずにデバッグに2つのインストールを実行します。

+0

こんにちはマット、説明をありがとう。しかし、私のpackage.jsonが毎回gitモジュールを取得せず、初めてのアップデートといくつかのアップデートがどうして起こるのか – Madrini

+0

私は現時点で可能だとは思わない。毎回リモートからのnpmの回避策が残っているようです。ローカルコピーがすべてをダウンロードするのではなく、リモートリポジトリで最新であることを確認するだけで十分です。 – Matt

関連する問題