Подтвердить что ты не робот

Npm windows install глобально приводит к ошибке npm ERR! посторонний

Я новичок в хрюке и нрм. Поэтому я пытаюсь использовать "cookbook-example" на сайте http://tech.pro/tutorial/1190/package-managers-an-introductory-guide-for-the-uninitiated-front-end-developer#front_end_developers. Теперь вам не обязательно смотреть туда, но я подумал, что это может быть хорошо, чтобы поделиться сайтом. Пока все хорошо, пока дело доходит до глобальной установки. (Хорошо, некоторые ошибки я должен был выяснить, но теперь у меня работает npm).

Когда дело доходит до точки, пытающейся установить что-то глобально, я застрял.

То, что я сделал до сих пор, для тестирования глобальной установки пакета:

  • Создан тестовый каталог grunttest

  • Внутри этого каталога:

    npm install -g jshint

Вывод: я вижу:

 npm http GET https://registry.npmjs.org/jshint
 npm http 304 https://registry.npmjs.org/jshint
 ...
 npm http 304 https://registry.npmjs.org/string_decoder
 C:\Program Files\nodejs\node_modules\npm\jshint -> C:\Program Files\nodejs\node_modules\npm\node_modules\jshinnt
 [email protected] C:\Program Files\nodejs\node_modules\npm\node_modules\jshint
 ├── [email protected]
 ├── [email protected]
 ├── [email protected]
 ├── [email protected]
 ├── [email protected] ([email protected], [email protected])
 ├── [email protected] ([email protected])
 └── [email protected] ([email protected], [email protected], [email protected], [email protected])

Я просто понимаю 304, что должно быть хорошо, потому что просто говорит, что ресурс не был изменен с момента последней установки (за несколько минут до этого).

Проверка наличия jshint с:

`npm -global list`

Вывод:

[email protected] C:\Program Files\nodejs\node_modules\npm
├── [email protected]
├── [email protected]
├─...
├──
├── [email protected]
├── [email protected]
├── [email protected]
├─┬ [email protected]
│ └── [email protected]
├─┬ [email protected] extraneous
│ ├─┬ [email protected]
│ │ └─┬ [email protected]
│ │   └── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ └─┬ [email protected]
│ │   └─... ├── [email protected]
├── [email protected]
└── [email protected]

**npm ERR! extraneous: [email protected] C:\Program Files\nodejs\node_modules\npm\node_modules\jshint npm**

Вопросы:

  • Почему я получаю npm ERR! посторонний...?
  • Что это значит?
  • Как я могу решить эту проблему?

информация:

Я нахожусь на Windows-машине Windows 7, используя cygwin в качестве оболочки. попытка просто jshint (jshint someTestfile.js), конечно, не работает.

Заранее спасибо, Meru

4b9b3361

Ответ 1

npm ERR! extraneous означает, что пакет установлен, но не указан в вашем проекте package.json.

Поскольку вы перечисляете пакеты, которые были установлены глобально, это даст вам массу посторонних ошибок, которые можно просто игнорировать, потому что большинство установленных в глобальном масштабе объектов не будет в вашем проекте package.json.

Ответ 2

1 и 2: это означает, что у вас нет jshint, указанного в файле project.json проекта, но он установлен на глобальном уровне. Так что это не большая проблема.

3: Чтобы избежать этой посторонней ошибки, вы можете запустить или повторно запустить установку с помощью опции --save. Это автоматически обновит файл package.json:

npm install -g jshint --save

Или вам нужно вручную обновить файл package.json с помощью "dependencies": {...}

Ответ 3

Я решил это, выполнив npm update в родительском пакете, который удалил некоторые из посторонних пакетов из списка, а затем сделал npm uninstall <package> для оставшихся.

Кажется, сработало, поскольку после этого я не получаю ошибок.

Ответ 4

Я решил это, объединив все ответы. Сначала я установил пакет по всему миру.

npm install -g packagename --save

Так как npm установил этот пакет так же глобально, но не добавил его в мой локальный файл package.json, мне пришлось что-то сделать.

Я выбираю решение для локального удаления, а затем устанавливаю его глобально.

npm uninstall packagename
npm install -g packagename

Таким образом у меня больше нет предупреждений и не испортить файл package.json.

Ответ 5

В моем случае я увидел это "npm ERR! постороннего" сообщения в моем терминале cygwin, когда я сделал "npm ls". Я думал, что это была какая-то глобально поврежденная установка после многократного возиться. Здесь я изучаю следующие замечания:

  • 'npm ls' дает разные выходы в зависимости от вашего текущего местоположения папки.
  • 'npm ls' пытается обнаружить наличие папки node_modules в текущей папке и отобразить это содержимое. НЕ глобальные!
  • Кроме того, если в текущей папке, содержащей "node_modules", также есть файл package.json, содержащий меньше модулей, перечисленных здесь, отображается ошибка.

I 'rm package.json' и 'npm ls' больше не отображается сообщение об ошибке. Поэтому я говорю, что всегда проверяйте текущее местоположение на наличие папки "node_modules" и файла package.json, потому что они приоритетны сначала в проверке, и если они отсутствуют, проверка продолжается до родительской папки, и поэтому и если вы много раз переработали множество фрагментов кода, вы, возможно, разбросали по большим и большим количествам папки node_modules и package.json. Здесь нет ничего испорченного, в отличие от тех событий, которые мы имеем при разработке J2EE Java development/eclipse IDE или в те дни, когда нам нужно использовать regedit для изменения настроек в Windows.

Ответ 6

Это связано с тем, что ваш пакет не находится в вашем пакете. json. Если вы добавите его, проблема будет решена, посмотрите на изображение ниже:

введите описание изображения здесь

Ответ 7

В моем случае это произошло потому, что имя пакета в файле package.json не совпадает с именем параметра, указанным в package.json зависимого модуля. Моя ошибка, так как это новый модуль, который я создал, но трудно определить, поскольку npm не даст никакой подсказки.

Это произошло при использовании синтаксиса dependencies: { "my-module": "file:local-modules/mymodule" } с опечаткой в ​​имени "my-module".