2015-03-09 2 views
1

Я являюсь автором двух модулей npm, как с devDependencies. Первый - простойDbLayer. Установите его:devDependencies игнорируется в npm?

npm install simpledblayer 

Загруженный файл имеет package.js devDependencies соответствие, что находится в git repository:

//... 
"devDependencies": { 
    "simpleschema": "0.3.x" 
}, 
//... 

К сожалению, nodeunit test.js потерпит неудачу, потому что simpleschema не был установлен (как это должно быть). Из руководства:

По умолчанию npm install будет устанавливать все модули, перечисленные в качестве зависимостей. С флагом --production, НПМ не будет устанавливать модули, перечисленные в devDependencies

Даже страннее (и это действительно странно, проблема меня больше всего влияет) мой другой модуль, simpledblayer-Монго:

npm install simpledblayer-mongo 

В он установлен package.js файл, у меня есть:

"devDependencies": {}, 

что не соответствует тому, что было на самом деле опубликован, :

"devDependencies": { 
    "simpleschema": "0.3.x", 
    "simpleschema-mongo": "0.3.x" 
}, 

Излишне говорить, что simpleschema и simpleschema-mongo не установлены.

Я что-то упустил?

ответ

2

Да, по умолчанию он будет устанавливать devDependencies, но только для вашего проекта (devDependencies в вашем package.json), а не для модулей в репозитории npm.

Если вы хотите devDependencies своих зависимостей, заставить его пропускание --dev команды НОЙ:

npm install simpledblayer --dev 

Кроме того, если у вас есть переменная окружения NODE_ENV установлены в производство, он не будет устанавливать devDependencies либо (даже не в вашем package.json).

+0

Проблема, с которой я сталкиваюсь, заключается в том, что _it не устанавливает devDependencies для моего собственного проекта_! Я устанавливаю 'simpledblayer', и devDependencies' simpleedblayer' не установлены ... – Merc

+0

Возможно, вы являетесь автором модуля, но вы загружаете его из репозитория npm. То, что я подразумевал под вашим проектом, - это когда вы устанавливаете 'npm install' в каталоге, где уже находится ваш код. – victorkohl

+0

Я смущен. Вариант использования, который у меня есть, прост: я вхожу в новый, девственный пустой домашний каталог. Я запускаю 'npm install simpledblayer-mongo'. Затем я попадаю в этот каталог и запускаю «npm test». Тесты терпят неудачу, потому что devDependencies of simpledblayer-mongo не установлены. Если этот прецедент не работает, что такое _использование, которое действительно работает? – Merc

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