1

npm サイトにないプライベート モジュールがいくつかあります。それらをアプリケーションで使用したいのですが、Elasticbeanstalk でのアップロード中にいくつかの問題が発生します。(Elastic Beanstalk は、アップロードのたびに npm install を実行します)。

  1. AWS は当初、NPM でこれらのプライベート モジュールが見つからないと不満を漏らしていたので、package.json ファイルからそれらのエントリを削除しました。

  2. 削除したら、それらのパッケージを含む node_modules フォルダーを使用してアプリケーションを再度アップロードすると、AWS が文句を言い始めます

    Error: Cannot find module 'my-private-module-name'
    

プライベート モジュールがどのように機能するのか疑問に思っているので、少なくとも展開のために NPM を経由する必要はありません。または、最後の手段としてそれらを公開します。

編集

"dependencies": {
    "body-parser": "^1.12.4",
    "express": "^4.12.3",
    "multer": "^0.1.8",
    "mustache": "^2.0.0",
    "mysql": "^2.6.2",
    "my-private-module": "^1.0.5",
    "redis": "^0.12.1",
    "socket.io": "^1.3.3"
  },
4

1 に答える 1

1

特定のパッケージを npm で検索したくない場合は、パッケージを公開する内部的な方法が必要になります。

"publishConfig":{"registry":"http://my-internal-registry.local"} 個々のパッケージでは、ファイルに追加する必要があり package.jsonます。

これにより、NPM に直接アクセスするのではなく、その場所でパッケージを検索できます。

https://docs.npmjs.com/misc/registry

次に ~/.npmrc ファイルで、npm でモジュールを検索する前に npm が最初に使用するレジストリを指定できます。

于 2015-05-26T19:59:28.617 に答える