НПМ установить Windows на глобальном уровне результаты в НПМ ошибаться! посторонний
Я новичок в grunt и npm. Так что я пытаюсь некоторые "поваренная книга-пример" на сайте '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 Filesnodejsnode_modulesnpmjshint -> C:Program Filesnodejsnode_modulesnpmnode_modulesjshinnt
[email protected] C:Program Filesnodejsnode_modulesnpmnode_modulesjshint
├── [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 Filesnodejsnode_modulesnpm
├── [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 Filesnodejsnode_modulesnpmnode_modulesjshint npm**
вопросы:
- почему я получаю npm ERR! посторонний...?
- что это значит?
- как я могу решить эту проблему?
информация:
Я на windows-машина Windows 7, использующая cygwin в качестве оболочки.
пытаясь просто jshint (jshint someTestfile.js) конечно не работает.
заранее спасибо, меру
7 ответов:
npm ERR! extraneousозначает, что пакет установлен, но не указан вpackage.json.поскольку вы перечисляете пакеты, которые были установлены глобально, это даст вам много посторонних ошибок, которые можно просто игнорировать, потому что большинство вещей, установленных глобально, не будет в вашем проекте
package.json.
1 & 2: это означает, что у вас нет JSHint, перечисленных в пакете вашего проекта.JSON-файл, но он установлен глобально. Так что это не большая проблема.
3: Чтобы избежать этого лишние ошибки, вы можете запустить или повторно запустить установку с параметром
--save. Это автоматически обновит ваш пакет.JSON-файл :npm install -g jshint --saveили нужно обновить вручную ваш пакет.JSON-файл с
"dependencies": {...}
Я решил это делать
npm updateв папке родительского пакета, который удалил некоторые из посторонних пакетов из списка, а затем сделалnpm uninstall <package>для оставшихся.- Кажется, сработало, так как я получаю никаких ошибок после этого.
Я решил объединить все ответы. Сначала я установил пакет глобально.
npm install -g packagename --saveпоскольку npm установил этот пакет также глобально, но не добавил его в мой локальный пакет.файл json, я должен был что-то с этим сделать.
Я выбираю, решение для удаления локального, а затем установить его глобально.
npm uninstall packagename npm install -g packagenameтаким образом у меня больше никаких предупреждений и не испортить упаковку.файл json.
Я мой случай, я видел это ' npm ERR! постороннее "сообщение в моем терминале cygwin, когда я сделал "npm ls". Я думал, что это была какая-то глобально поврежденная установка после того, как много возился. Здесь я узнаю следующие наблюдения:
- 'npm ls' дает различные выходы в зависимости от того, что ваше текущее местоположение папки.
- 'npm ls' пытается обнаружить наличие папки 'node_modules' в текущем местоположении папки и перечислить это содержимое. НЕ на глобальном уровне!
- кроме того, если текущая папка, содержащая 'node_modules' также имеет пакет.JSON файл, содержащий меньше модулей, перечисленных здесь, то ошибка показывает.
Я 'rm пакет.json ' и 'npm ls' больше не показывает сообщение об ошибке. Поэтому я говорю, что всегда проверяйте текущее местоположение на наличие папки "node_modules" и пакета.JSON-файл, потому что они имеют приоритет сначала в проверке, и если они отсутствуют, проверка продолжается до родительская папка и так далее, и если вы переделали много фрагментов кода много, то вы, возможно, разбросаны вокруг много и много node_modules папки и пакета.файл json. Здесь ничего не повреждено, в отличие от тех опытов, которые мы имеем при разработке J2EE Java / Eclipse IDE или в те дни, когда мы должны использовать regedit для изменения настроек в Windows.
В моем случае это было потому что имя пакета в его
package.jsonфайл не совпадал с именем отдела, указанным вpackage.jsonиз зависимого модуля. Моя ошибка, так как это новый модуль, который я создал, но трудно определить, так как npm не даст никакой подсказки.Это произошло при использовании
dependencies: { "my-module": "file:local-modules/mymodule" }синтаксис, с опечаткой в имени "my-module".

Comments