npm のモジュール管理形式における問題点として出そうなこと
jshint-tap-simple をいれると以下のようになってます。
jshint-tap-simple@1.0.2/home/tokuhirom/dev/jshint-tap-simple
├── colors@0.6.0-1
├─┬ glob@3.1.12
│ ├── graceful-fs@1.1.10
│ ├── inherits@1.0.0
│ └─┬ minimatch@0.2.6
│ └── lru-cache@2.0.2
└─┬ jshint@0.8.1
├── cli@0.4.3
└─┬ minimatch@0.0.5
└── lru-cache@1.0.6
で、まあこれみればわかるとおり、minimatch のバージョンがずれてます。
このケースだととくに問題ないんだけど、今後おおきいアプリケーションをつくっていくと、モジュールによってつかってる minimatch のバージョンがちがくて、かいてるパティーンがつかえなかったりしてウァアーってなったりしそうだなーと。
あと ~ でバージョン指定してて、古いバージョンつかいっぱなしになってるモジュールが結構それなりにありそう。有名なバグがはいってるバージョンを執拗につかいつづけるやつが、でそうですわなあ。
npm module の作者、よほど有名なもの以外は古いバージョンラインのバグフィックスを真面目にやったりはしないだろうから、依存がふえてくると阿鼻叫喚になるのかなあ。
意外と、モジュールは内部でしかつかわないものが多いから大丈夫だったりするのかな。
npm publish の前に、依存モジュールの最新版の有無をたしかめたほうがいいんじゃないかなあ。
などとかんがえている今日この頃です。杞憂ならいいんですけど。
Published: 2012-08-30(Thu) 01:44