2015-07-09 2 views
2

Я две установки Node.js/НМП, один 1.4.28 и один 3.1.0НПМ зависимостями установка, спутать

путем развертывания того же приложения с файлом package.json, содержащий:

{ 
    "name": "server", 
    "version": "0.0.1", 
    "description": "js server", 
    "dependencies": { 
    "async": "^1.3.0", 
    "aws-sdk": "^2.1.36", 
    "body-parser": "^1.13.2", 
    "ejs": "^2.3.2", 
    "express": "^4.13.1", 
    "generic-pool": "^2.2.0", 
    "multer": "^0.1.8", 
    "mysql": "^2.7.0", 
    "node-uuid": "^1.4.3", 
    "nodemailer": "^1.4.0", 
    "nodemailer-smtp-transport": "^1.0.3", 
    "password-hash-and-salt": "^0.1.2", 
    "pm2": "^0.14.3", 
    "redis": "^0.12.1", 
    "redis-sessions": "^0.3.9", 
    "request": "^2.58.0", 
    "socket.io": "^1.3.5", 
    "winston": "^1.0.1", 
    "yauzl": "^2.3.1" 
    } 
} 

на версии 1.4.28, после запуска НОЙ установки на новую установку без какого-либо каталога node_modules, если заполняется правильными необходимыми модулями:

enter image description here

в то время как на версии 3.1.0 я получаю тонны subdependancies, которые не должны были необходимы, на мой взгляд:

enter image description here

Так кто-нибудь может объяснить мне, что происходит и почему я получаю все эти Deps тянут в? Я также пробовал с --production, что на npm без успеха ...

Спасибо большое!

+0

см. [Этот ответ] (http://stackoverflow.com/a/35227212/580651) о том, как использовать устаревшее связывание – luchaos

ответ

2

Это новый npm 3. * особенность. От npm blog:

С npm @ 3 ваш каталог node_modules будет намного более плоским. Все ваши зависимости и большинство ваших зависимостей (и (sub) + зависимости) будут сидеть рядом друг с другом в верхней части уровня. Только при наличии конфликтов модули будут установлены на более глубоких уровнях. Это должно сделать намного проще для пользователей Windows.

Смежные вопросы