Как получить ошибки / предупреждения, когда 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

Но... это не дает мне предупреждения... Теперь я действительно должен выбрать между получением предупреждения и решить, где установить пакет?

0 ответов

Другие вопросы по тегам