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).
Когда дело доходит до точки, пытающейся установить что-то глобально, я застрял.
То, что я сделал до сих пор, для тестирования глобальной установки пакета:
Вывод: я вижу:
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
Ответы
Ответ 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".