НПМ установить Windows на глобальном уровне результаты в НПМ ошибаться! посторонний



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



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



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




  1. создан тест-каталог grunttest



  2. внутри этой директории:



    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**


вопросы:




  1. почему я получаю npm ERR! посторонний...?

  2. что это значит?

  3. как я могу решить эту проблему?


информация:



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



заранее спасибо, меру

728   7  

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".

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

enter image description here

Comments

    Ничего не найдено.