1. ホーム
  2. npm

[解決済み] NPMがモジュールの依存関係をインストールしない

2022-04-22 11:04:44

質問

これは私の package.json を、親プロジェクトでインクルードしているモジュールに適用しています。

{
  "version": "0.0.1",
  "name": "module-name",
  "dependencies": {
    "express": "3.3.4",
    "grunt": "0.4.1",
    "grunt-contrib-compass": "0.4.0",
    "grunt-contrib-copy": "0.4.1",
    "grunt-contrib-cssmin": "0.4.1",
    "grunt-contrib-jshint": "0.6.3",
    "grunt-contrib-requirejs": "0.4.1",
    "grunt-contrib-uglify": "0.2.2",
    "grunt-contrib-watch": "0.5.1",
    "grunt-express-server": "0.4.1",
    "grunt-karma": "0.4.5",
    "grunt-regex-replace": "0.2.5",
    "request": "2.25.0"
  },
  "scripts": {
    "postinstall": "grunt install"
  }
}

注意点としては、このモジュールはプライベートリポに含まれており、親リポの package.json のようなものです。 "module-name": "git+ssh://git@myserver:user/module-name.git"

解決方法は?

かなり以前から存在し、まだ解決されていないバグに当たったようですね。npmリポジトリには、この件に関するいくつかのオープンイシューがあります。

最初のページでは、いくつかの回避策を紹介しています。

別の解決策としては、(少しハック的ですが)依存関係を第一レベルの依存関係として明示的にリストアップすることが考えられます。この場合、リストを管理する必要がありますが、実際上、それは非常に頻繁に行われる必要があります。