0

package.jsonにあるすべてのプロジェクトの依存関係をインストールしたいので、Node.js プロジェクトのルートからnpm installを実行しようとしています。ただし、コマンドラインでnpm installを実行すると、インストールされたと報告されている依存関係のリストが表示されますが、そのディレクトリに移動してサブディレクトリnode_modules/を検索すると、存在しません。したがって、npm startを実行しようとすると明らかなように、これらの依存関係は実際にはインストールされていません。モジュールが見つからないというエラーがスローされ始めます。私は何を間違っていますか?

これは私のpackage.jsonのコピーです(詳細はプライバシーのために削除されています):

{
  "name": "xxxxxxxxx",
  "version": "x.x.x",
  "description": "xxxxxxxxx",
  "main": "xxxxxxxxx.js",
  "scripts": {
    "start": "node xxxxxxxxx.js",
    "lint": "jshint **/**/*.js --reporter=node_modules/jshint-stylish/stylish.js",
    "test": "mocha test/"
  },
  "pre-commit": [
    "lint",
    "test"
  ],
  "repository": {
    "type": "git",
    "url": "https://xxxxxxxxx.git"
  },
  "author": "xxxxxxxxx",
  "license": "xxxxxxxxx",
  "dependencies": {
    "bluebird": "^2.9.13",
    "boom": "^2.6.1",
    "good": "^5.1.2",
    "good-console": "^4.1.0",
    "hapi": "^8.2.0",
    "hapi-swagger": "^0.6.4",
    "joi": "^5.1.0",
    "lodash": "^3.3.1",
    "lodash-deep": "^1.5.3",
    "lout": "^6.2.0",
    "request": "^2.55.0"
  },
  "devDependencies": {
    "chai": "^2.0.0",
    "jshint-stylish": "^1.0.2",
    "mocha": "^2.1.0",
    "pre-commit": "^1.0.7"
  }
}

前述のように、ここにリストされている依存関係はすべて、コマンド プロンプトに緑色のテキストで表示され、ダウンロードされたことを示しています。ただし、node_modules/さえ存在しないため、それらはダウンロードされませんでした。コマンド プロンプトは次のようになります。

C:\development>npm install
npm http GET https://registry.npmjs.org/boom
npm http GET https://registry.npmjs.org/good-console
npm http GET https://registry.npmjs.org/bluebird
npm http GET https://registry.npmjs.org/good
npm http GET https://registry.npmjs.org/joi
npm http GET https://registry.npmjs.org/hapi-swagger
npm http GET https://registry.npmjs.org/lout
npm http GET https://registry.npmjs.org/hapi
npm http GET https://registry.npmjs.org/lodash-deep
npm http GET https://registry.npmjs.org/chai
npm http GET https://registry.npmjs.org/lodash
npm http GET https://registry.npmjs.org/jshint-stylish
npm http GET https://registry.npmjs.org/mocha
npm http GET https://registry.npmjs.org/pre-commit
npm http GET https://registry.npmjs.org/request
npm http 304 https://registry.npmjs.org/good-console
npm http 304 https://registry.npmjs.org/boom
npm http 304 https://registry.npmjs.org/bluebird
npm http 304 https://registry.npmjs.org/good
npm http 304 https://registry.npmjs.org/hapi-swagger
npm http 304 https://registry.npmjs.org/hapi
npm http 304 https://registry.npmjs.org/lodash-deep
npm http 304 https://registry.npmjs.org/chai
npm http 304 https://registry.npmjs.org/joi
npm http 304 https://registry.npmjs.org/lodash
npm http 304 https://registry.npmjs.org/lout
npm http 304 https://registry.npmjs.org/jshint-stylish
npm http 304 https://registry.npmjs.org/mocha
npm http 304 https://registry.npmjs.org/pre-commit
npm http 304 https://registry.npmjs.org/request

C:\development>ll
05/13/2015  12:32 PM    <DIR>          .
05/13/2015  12:32 PM    <DIR>          ..
05/12/2015  05:24 PM                93 .gitignore
05/12/2015  05:24 PM                15 .jshintignore
05/12/2015  05:24 PM             3,957 .jshintrc
05/12/2015  05:24 PM                36 .npmrc
05/12/2015  05:24 PM    <DIR>          config
05/12/2015  05:24 PM             1,363 xxxxx.json
05/12/2015  05:24 PM    <DIR>          lib
05/12/2015  05:24 PM             1,201 package.json
05/12/2015  05:24 PM             1,113 readme.md
05/12/2015  05:24 PM             2,046 xxxxx.js

C:\development>npm start

module.js:340
    throw err;
          ^
Error: Cannot find module 'hapi'
    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> (C:\path)
    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 Function.Module.runMain (module.js:497:10)

上にサブディレクトリnode_modules/が存在しないことに注意してください。また、以前にコマンド プロンプトでダウンロード済みとしてリストされていたモジュール「hapi」が見つからないことに注意してください。

私がこれまでに試したことは次のとおりです。

  • npm installを実行する前にnode_modules/ディレクトリを手動で作成する
  • ディレクトリのパーミッションを確認しています
  • その他のスタックオーバーフロー記事

しかし、私はまだ成功していません。私の質問に最も近いスタックオーバーフローはnpm install doesn't install any dependenciesですが、これは、その投稿の「答え」が私の問題を解決しないという事実が異なることに注意してください(ディレクトリnode_modules/を削除することでしたが、私はそうではありません)存在すらない)。

私が持っている他の Node.js プロジェクトでnpm installを実行でき、 package.jsonから依存関係をインストールすることに成功しました。この例を機能させることはできません。

4

1 に答える 1

0

npmrc のルート フォルダーに注意してください。すべての依存関係がルート フォルダーにダウンロードされている可能性があります。Npm はこれを何度か行います。私もこの問題に遭遇しました。ほとんどの場合、フォルダーに package.json ファイルがない場合に発生します。モジュールがダウンロードされた情報が表示されません..npmまたは何かにアクセスできなかった可能性があります..npmレジストリcomfigをhttpに設定して、もう一度試してください。パス D: などを変更してください。それが発生した場合は、npm でバグを発生させます

于 2015-05-14T20:01:11.973 に答える