나는 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 Files\nodejs\node_modules\npm\jshint -> C:\Program Files\nodejs\node_modules\npm\node_modules\jshinnt
jshint@2.4.4 C:\Program Files\nodejs\node_modules\npm\node_modules\jshint
├── console-browserify@0.1.6
├── exit@0.1.2
├── underscore@1.4.4
├── shelljs@0.1.4
├── minimatch@0.2.14 (sigmund@1.0.0, lru-cache@2.5.0)
├── cli@0.4.5 (glob@3.2.9)
└── htmlparser2@3.3.0 (domelementtype@1.1.1, domutils@1.1.6, domhandler@2.1.0, readable-stream@1.0.26-2)
마지막 설치 이후 (몇 분 전) 리소스가 수정되지 않았기 때문에 괜찮을 것입니다.
jshint가 있는지 확인하십시오.
`npm -global list`
산출:
npm@1.4.3 C:\Program Files\nodejs\node_modules\npm
├── abbrev@1.0.4
├── ansi@0.2.1
├─...
├──
├── graceful-fs@2.0.2
├── inherits@2.0.1
├── ini@1.1.0
├─┬ init-package-json@0.0.14
│ └── promzard@0.2.1
├─┬ jshint@2.4.4 extraneous
│ ├─┬ cli@0.4.5
│ │ └─┬ glob@3.2.9
│ │ └── inherits@2.0.1
│ ├── console-browserify@0.1.6
│ ├── exit@0.1.2
│ ├─┬ htmlparser2@3.3.0
│ │ ├── domelementtype@1.1.1
│ │ ├── domhandler@2.1.0
│ │ ├── domutils@1.1.6
│ │ └─┬ readable-stream@1.0.26-2
│ │ └─... ├── text-table@0.2.0
├── uid-number@0.0.3
└── which@1.0.5
**npm ERR! extraneous: jshint@2.4.4 C:\Program Files\nodejs\node_modules\npm\node_modules\jshint npm**
질문 :
- npm ERR이 발생하는 이유! 외부 …?
- 무슨 뜻인가요?
- 이 문제를 어떻게 해결할 수 있습니까?
정보:
나는 cygwin을 쉘로 사용하는 Windows 컴퓨터 Windows 7에 있습니다. jshint someTestfile.js
물론 jshint ( ) 만 시도하면 작동하지 않습니다.
미리 감사드립니다, Meru
답변
npm ERR! extraneous
패키지가 설치되었지만 프로젝트의 package.json
.
전역 적으로 설치된 패키지를 나열하기 때문에 전역 적으로 설치된 대부분의 항목이 프로젝트의 package.json
.
답변
1 & 2 : 프로젝트의 package.json 파일에 jshint가 나열되어 있지 않지만 전역 적으로 설치되어 있음을 의미합니다. 그래서 큰 문제는 아닙니다.
3 :이 불필요한 오류 를 방지하기 위해 옵션을 사용하여 설치를 실행하거나 다시 실행할 수 있습니다 --save
. 그러면 package.json 파일이 자동으로 업데이트됩니다.
npm install -g jshint --save
또는 package.json 파일을 "dependencies": {...}
답변
npm update
목록에서 외부 패키지 중 일부를 제거한 다음 npm uninstall <package>
나머지 몇 개 를 수행하는 상위 패키지의 폴더 에서이 문제를 해결했습니다 .
이 작업을 수행 한 후 오류가 발생하지 않으므로 작동 한 것 같습니다.
답변
나는 모든 답을 결합하여 해결했습니다. 처음에는 패키지를 전역 적으로 설치했습니다.
npm install -g packagename --save
npm은이 패키지를 전 세계적으로 설치했지만 로컬 package.json 파일에 추가하지 않았으므로 이에 대해 뭔가를해야했습니다.
로컬 솔루션을 제거한 다음 전역으로 설치하는 솔루션을 선택합니다.
npm uninstall packagename
npm install -g packagename
이렇게하면 더 이상 경고가 표시되지 않고 package.json 파일을 엉망으로 만들지 않습니다.
답변
내 경우,이 ‘npm ERR을 봤어! 내가 ‘npm ls’를했을 때 내 cygwin 터미널에 불필요한 ‘메시지가 나타납니다. 나는 이것이 많은 땜질을 한 후에 이것이 일종의 전 세계적으로 손상된 설정이라고 생각했습니다. 여기에서 다음과 같은 관찰을 배웁니다.
- ‘npm ls’는 현재 폴더 위치에 따라 다른 출력을 제공합니다.
- ‘npm ls’는 현재 폴더 위치에서 ‘node_modules’폴더의 존재를 감지하고 해당 내용을 나열하려고합니다. 글로벌 사람이 아닙니다!
- 또한 ‘node_modules’를 포함하는 현재 폴더에도 여기에 나열된 모듈이 더 적은 package.json 파일이 있으면 오류가 표시됩니다.
‘rm package.json’및 ‘npm ls’는 더 이상 오류 메시지를 표시하지 않습니다. 그래서 나는 항상 현재 위치에서 ‘node_modules’폴더와 package.json 파일이 있는지 확인한다고 말합니다. 왜냐하면 이들은 검사에서 우선 순위가 먼저 지정되고 누락 된 경우 검사는 상위 폴더로 계속 진행됩니다. 그리고 많은 코드 조각을 많이 수정했다면 node_modules 폴더와 package.json 파일에 흩어져있을 수 있습니다. J2EE Java 개발 / Eclipse IDE를 수행 할 때 또는 Windows에서 설정을 변경하기 위해 regedit를 사용해야하는 날 동안 경험 한 것과는 달리 여기서 실제로 손상되는 것은 없습니다.
답변
제 경우에는 package.json
파일 의 패키지 이름 package.json
이 종속 모듈 의 에 나열된 종속성 이름과 동일하지 않았기 때문 입니다. 내 오류는 내가 만든 새 모듈이기 때문에 npm이 단서를주지 않기 때문에 찾기가 어렵습니다.
이것은 dependencies: { "my-module": "file:local-modules/mymodule" }
“my-module”이름에 오타가 있는 구문을 사용할 때 발생했습니다 .