Проблема была решена путём копирования из dependencies используемого модуля некоторые модули в свой dependencies.
Было:
package.json
{
"dependencies": {
"js-yaml": "^3.3.1",
"yards-cli": "0.1.5"
}
}
node_modules/module_name/package.json
{
"dependencies": {
"тяжелый-модуль-с-длинными-именами": "0.0.7"
}
}
Стало:
package.json
{
"dependencies": {
"js-yaml": "^3.3.1",
"yards-cli": "0.1.5",
"тяжелый-модуль-с-длинными-именами": "0.0.7"
}
}
node_modules/module_name/package.json
{
"dependencies": {
"тяжелый-модуль-с-длинными-именами": "0.0.7"
}
}
Путём наблюдения было выяснено, что если некоторые модули из вашего dependencies и dependencies используемого модуля совпадают по имени и версии, то npm понимает, что нет смысла дважды устанавливать его т.к. используемый вами модуль сможет без проблем использовать перенесенный модуль следующим путем:
require('module_name');
Использовать осторожно: некоторые модули могут использовать файлы используемых модулей некорректно:
require('./node_modules/module_name/path/to/file.js');
Хотя, по факту, следующий код будет эквивалентным и более работоспособным в сложившейся ситуации:
require('module_name/path/to/file.js');