Как получить ошибки / предупреждения, когда npm устанавливает пакет узла @ неправильная версия узла
Я играю с io.js и при этом часто переключаюсь между Node и io.js.
По факту; Я пропустил какое-то предупреждение или ошибку при установке пакета, который, например, требует io.js. Вот простой package.json, который служит примером:
{
"name": "myApp",
"version": "1.0.0",
"description": "Simple demo site",
"main": "app.js",
"scripts": {
"start": "node app.js"
},
"dependencies": {
"express": "3.1.0"
},
"engineStrict" : "true",
"engines" :{
"iojs" : "1.6.3"
}
}
App.js тривиален, но только для завершения:
var app = module.exports = require('express')();
app.get('/user', function(req, res){
res.send(200, { name: 'tobi' });
});
app.listen(3000);
console.log("Application is listening on http://localhost:3000/user")
Если я использую узел 0.12.0 в моем терминале nvm use node
например, а затем очистить наш node_modules
(rm -rf node_modules
) Могу еще npm install
пакеты. Нет проблем, нет предупреждений, нет ошибок. Он может не работать, но он устанавливает все зависимости.
Тем не менее, я нашел в документации, что если я увеличу один каталог cd ..
а затем удалите node_modules
(rm -rf node_modules
) еще раз и беги
npm install myApp
(где myApp - это папка с моим package.json). Я получил предупреждение. Или ошибка, если я установил "engineStrict": "true"
,
Теперь, наконец, на мой вопрос; что если я переключусь на io.js (nvm use iojs
), а затем выполните:
npm install myApp
Нет предупреждения или ошибки. Отлично - просто отлично устанавливает. Но... нет node_modules
в myApp
-folder.
Первая строка отзывов от npm install
утверждает это:
demoapp@1.0.0 ../../../../../../../node_modules/myApp
../../../../../../../
это корень моего пользователя (~
). И myApp там и работает. Но почему?
А также: есть ли другой способ получить ошибку установки, кроме 1) увеличить один каталог, 2) установить npm [имя каталога] 3) посмотреть, что было установлено в корне?
Спасибо за любую помощь в этом.
[ОБНОВЛЕНИЕ] В словах в Гомере
Doh!
Я только нашел другой вопрос и ответ по этому поводу. Оставив его здесь для справки и как свидетельство моего отсутствия RTM.
Есть --prefix-flag, который вы можете использовать в каталоге, куда вы хотите установить пакет. Полная команда из моего примера выше:
npm install --prefix ./myApp/ myApp
Но... это не дает мне предупреждения... Теперь я действительно должен выбрать между получением предупреждения и решить, где установить пакет?