2015-10-31 2 views
5

Недавно я установил новый nodejs 5.x с npm 3.x - наиболее заметным изменением является плоская структура в node_modules - это замечательно в среде Windows.npm 3.x и локальные пути в пакете module.json

К сожалению, я заметил, что новые npm помещают локальные пути в package.json для всех установленных модулей. Как я могу предотвратить это (или добавить туда относительный путь)? Я хочу передать мои node_modules в hg-репозиторий, поэтому все в команде разработчиков будут иметь одинаковые модули. Вот пример раздели package.json из Abbrev пакета:

{ 
    "_args": [ 
    [ 
     "[email protected]://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz", 
     "C:\\Users\\ABC\\Documents\\ABC" 
    ] 
    ], 
    "_where": "C:\\Users\\ABC\\Documents\\ABC" 
} 

"C: \ Users \ ABC \ Documents \ ABC" является локальный путь

С наилучшими пожеланиями,

+0

Похоже на то, что для 'npm shrinkwrap' для. https://docs.npmjs.com/cli/shrinkwrap – eush77

+0

К сожалению, у упакованных пакетов также есть локальные пути, написанные менеджером npm. – Sassa

+0

Я имею в виду, что вы можете запускать 'npm shrinkwrap' и передать полученный файл' npm-shrinkwrap.json' в свой проект - в этом файле нет относительных путей, а только имена пакетов и версии. Все остальные, проверяющие этот проект, просто устанавливаются из этого файла и получают точно такие же версии. Задача решена. Нет необходимости фиксировать все «node_modules» и обрабатывать мегабайты журналов разметки. – eush77

ответ