2016-04-18 17 views
0

はじめに:これは基本的な質問ですが、既存のJavaScriptプロジェクトに依存関係を追加するいくつかの方法があります。私はドキュメントをチェックして、ファイルをインストールしているにもかかわらず、私は問題があることを示す私の端末にたくさんのものを持っていました。既存のpackage.jsonに新しい依存関係をインストールする

は、ここに私がやったことだ:

私が最初にそれにインストールchaiでプロジェクトを持っていました。さらにJSONファイルをテストする必要があり、Chaichai-json-schemaというパッケージがあることを発見したので、インストール手順を2回チェックしてインストールしました。私は私のプロジェクトのルートディレクトリから入力されたインストールするには

// --save is supposed to put it in the package.json file 
npm install --save chai-json-schema 

これは、ログに記録:

Adrians-Air:my-javascript-app adrianTheJavaScriptNoob$ npm install --save chai-json-schema 
npm WARN package.json [email protected] No README data 
npm WARN peerDependencies The peer dependency [email protected]>= 1.6.1 < 3 included from chai-json-schema will no 
npm WARN peerDependencies longer be automatically installed to fulfill the peerDependency 
npm WARN peerDependencies in npm 3+. Your application will need to depend on it explicitly. 
npm ERR! Darwin 15.3.0 
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "--save" "chai-json-schema" 
npm ERR! node v4.4.3 
npm ERR! npm v2.15.1 
npm ERR! code EPEERINVALID 

npm ERR! peerinvalid The package [email protected] does not satisfy its siblings' peerDependencies requirements! 
npm ERR! peerinvalid Peer [email protected] wants [email protected]>= 2.1.2 < 4 
npm ERR! peerinvalid Peer [email protected] wants [email protected]>= 1.6.1 < 3 

npm ERR! Please include the following file with any support request: 
npm ERR!  /Users/adrianTheJavaScriptNoob/Documents/Developer/JavaScript/alexa-app-server/examples/apps/my-javascript-app/npm-debug.log 

を私はnpmは私がインストールされてしまったものとは異なるバージョンを望んでいると思います。私はこれをムックアップの再帰に回すことを避けることを切望しているので、ここに投稿しています。

インストールをクリーンアップするにはどうすればよいでしょうか?

私はnpm-debug.logを見て、それがこの言う:

0 info it worked if it ends with ok 
1 verbose cli [ '/Users/adrianTheJavaScriptNoob/.nvm/v0.10.36/bin/node', 
1 verbose cli '/Users/adrianTheJavaScriptNoob/.nvm/v0.10.36/bin/npm', 
1 verbose cli 'install', 
1 verbose cli 'chai-json-schema' ] 
2 info using [email protected] 
3 info using [email protected] 
4 warn package.json [email protected] No README data 
5 verbose readDependencies using package.json deps 
6 verbose cache add [ '[email protected]^1.6.1', null ] 
7 verbose cache add name=undefined spec="[email protected]^1.6.1" args=["[email protected]^1.6.1",null] 
8 verbose parsed url { protocol: null, 
8 verbose parsed url slashes: null, 
8 verbose parsed url auth: null, 
8 verbose parsed url host: null, 
8 verbose parsed url port: null, 
8 verbose parsed url hostname: null, 
8 verbose parsed url hash: null, 
8 verbose parsed url search: null, 
8 verbose parsed url query: null, 
8 verbose parsed url pathname: '[email protected]^1.6.1', 
8 verbose parsed url path: '[email protected]^1.6.1', 
8 verbose parsed url href: '[email protected]^1.6.1' } 
9 verbose cache add name="chai-json-schema" spec="^1.6.1" args=["chai-json-schema","^1.6.1"] 
10 verbose parsed url { protocol: null, 
10 verbose parsed url slashes: null, 
10 verbose parsed url auth: null, 
10 verbose parsed url host: null, 
10 verbose parsed url port: null, 
10 verbose parsed url hostname: null, 
10 verbose parsed url hash: null, 
10 verbose parsed url search: null, 
10 verbose parsed url query: null, 
10 verbose parsed url pathname: '^1.6.1', 
10 verbose parsed url path: '^1.6.1', 
10 verbose parsed url href: '^1.6.1' } 
11 verbose addNamed [ 'chai-json-schema', '^1.6.1' ] 
12 verbose addNamed [ null, '>=1.6.1-0 <2.0.0-0' ] 
13 silly lockFile 34644556-chai-json-schema-1-6-1 [email protected]^1.6.1 
14 verbose lock [email protected]^1.6.1 /Users/adrianTheJavaScriptNoob/.npm/34644556-chai-json-schema-1-6-1.lock 
15 silly addNameRange { name: 'chai-json-schema', 
15 silly addNameRange range: '>=1.6.1-0 <2.0.0-0', 
15 silly addNameRange hasData: false } 
16 verbose request where is /chai-json-schema 
17 verbose request registry https://registry.npmjs.org/ 
18 verbose request id e2d921f702a3d1b4 
19 verbose url raw /chai-json-schema 
20 verbose url resolving [ 'https://registry.npmjs.org/', './chai-json-schema' ] 
21 verbose url resolved https://registry.npmjs.org/chai-json-schema 
22 verbose request where is https://registry.npmjs.org/chai-json-schema 
23 info trying registry request attempt 1 at 13:00:18 
24 verbose etag "A7MEFNDHR2NAP8SJP41PKZK1S" 
25 http GET https://registry.npmjs.org/chai-json-schema 
26 http 304 https://registry.npmjs.org/chai-json-schema 
27 silly registry.get cb [ 304, 
27 silly registry.get { date: 'Mon, 18 Apr 2016 17:00:18 GMT', 
27 silly registry.get  via: '1.1 varnish', 
27 silly registry.get  'cache-control': 'max-age=300', 
27 silly registry.get  etag: '"A7MEFNDHR2NAP8SJP41PKZK1S"', 
27 silly registry.get  age: '0', 
27 silly registry.get  connection: 'keep-alive', 
27 silly registry.get  'x-served-by': 'cache-jfk1035-JFK', 
27 silly registry.get  'x-cache': 'MISS', 
27 silly registry.get  'x-cache-hits': '0', 
27 silly registry.get  'x-timer': 'S1460998818.398706,VS0,VE32', 
27 silly registry.get  vary: 'Accept-Encoding' } ] 
28 verbose etag https://registry.npmjs.org/chai-json-schema from cache 
29 silly addNameRange number 2 { name: 'chai-json-schema', 
29 silly addNameRange range: '>=1.6.1-0 <2.0.0-0', 
29 silly addNameRange hasData: true } 
30 silly addNameRange versions [ 'chai-json-schema', 
30 silly addNameRange [ '1.0.2', 
30 silly addNameRange  '1.0.3', 
30 silly addNameRange  '1.0.4', 
30 silly addNameRange  '1.0.5', 
30 silly addNameRange  '1.0.7', 
30 silly addNameRange  '1.0.10', 
30 silly addNameRange  '1.1.0', 
30 silly addNameRange  '1.2.0' ] ] 
31 silly lockFile 34644556-chai-json-schema-1-6-1 [email protected]^1.6.1 
32 silly lockFile 34644556-chai-json-schema-1-6-1 [email protected]^1.6.1 
33 error notarget No compatible version found: [email protected]'>=1.6.1-0 <2.0.0-0' 
33 error notarget Valid install targets: 
33 error notarget ["1.0.2","1.0.3","1.0.4","1.0.5","1.0.7","1.0.10","1.1.0","1.2.0"] 
33 error notarget 
33 error notarget This is most likely not a problem with npm itself. 
33 error notarget In most cases you or one of your dependencies are requesting 
33 error notarget a package version that doesn't exist. 
34 error System Darwin 15.3.0 
35 error command "/Users/adrianTheJavaScriptNoob/.nvm/v0.10.36/bin/node" "/Users/adrianTheJavaScriptNoob/.nvm/v0.10.36/bin/npm" "install" "chai-json-schema" 
36 error cwd /Users/adrianTheJavaScriptNoob/Documents/Developer/JavaScript/alexa-app-server/examples/apps/my-javascript-app 
37 error node -v v0.10.36 
38 error npm -v 1.4.28 
39 error code ETARGET 
40 verbose exit [ 1, true ] 

更新:

私は戻り値がJSONであることをテストするためにchai-json-schema JSONパッケージを使用しようとしました。私は株式chaiは、戻り値がJSONであることをテストする方法を持って発見し、chai-son-schemaは一年以上更新されていない理由を説明している:

return expect(value).to.be.json; // tests if it's a json response 
+1

と思うあなたはchai-json-schemaパッケージのpackage.jsonを見れば

あなたはそれが次のようchaiバージョンを必要としていることがわかります私の意見では、これはピア依存関係のかなり大きな欠点です。正直なところ、同じライブラリの2つの異なるメジャーバージョンを必要とする2つのパッケージがあるので、パッケージマネージャにピア依存関係を削除するように依頼することは、半分考慮します。それらのパッケージが本当に*特定のバージョンを必要とする(疑わしい)場合、それらは実際の依存関係にするべきです。 – dvlsg

答えて

1

というエラーがわかりますchaiパッケージのバージョンをインストールしているしませんchai-json-schemaが必要とするバージョンを満たしていること。チェックがchaiパッケージをインストールしたバージョン

"peerDependencies": { 
    "chai": ">= 1.6.1 < 3" 
} 

npm ls --depth=0は、私はあなたのバージョン> = 3

+0

ビンゴ。それが私の問題です。それは3.5です。特定のバージョンに更新するにはどうすればよいですか? – Adrian

+1

あなたの問題の一部です。あなたのライブラリの1つがchai @ 2.1.2を望んでおり、もう1つはchai @ 1.6.1が必要です。これは別の問題を提示します。 'nai @ chai @ 2.1.2'をインストールすることはできますが、' chai @ 1.6.1'を望むライブラリはうまくいきません。 'chai'がAPIをあまり変更していなければ、まだ動作するかもしれませんが、それは保証されていません。 – dvlsg

+1

'chai-json-schema'パッケージはもうサポートされていないようです(最後のコミットは1年前です)、本当に必要なら' chai'バージョンを2.3.0にダウングレードする必要があります: 'npm i -D chai @ 2.3.0' – alexmac

関連する問題