2016-11-22 9 views
0

작동하지 내가 "NPM의 numpty"되는 경우가 있습니다 만, 내가 입력 한 이유를 때 알아낼 수 없습니다 "CMD를 실행 NPM"

npm run lint 
나는 다음과 같은 오류가

"scripts": { 
    "clean": "rimraf lib", 
    "lint": "tslint --force --format verbose \"src/**/*.ts\"", 
    "build": "npm run clean && npm run lint && echo Using TypeScript && tsc --version && tsc --pretty", 
    "test": "npm run build && mocha --compilers ts:ts-node/register --recursive test/**/*-spec.ts", 
    "watch": "npm run build -- --watch", 
    "watch:test": "npm run test -- --watch" 
    }, 

을 : 내 package.json 포함

module.js:471 throw err; ^

Error: Cannot find module './test/parse' at Function.Module._resolveFilename (module.js:469:15) at Function.Module._load (module.js:417:25) at Module.require (module.js:497:17) at require (internal/module.js:20:19) at Object. (/Volumes/PEGASUS/repos/mine/logger/serverless-event/node_modules/tslint/lib/test.js:10:13) at Module._compile (module.js:570:32) at Object.Module._extensions..js (module.js:579:10) at Module.load (module.js:487:32) at tryModuleLoad (module.js:446:12) at Function.Module._load (module.js:438:3)

나는 또한 npm-debug.log 파일에 보니 다른 것들 사이는 말했다 : 정확한 명령 가 나는 데 모든 문제 실패하지 않는 것을 물론

23 error Tell the author that this fails on your system: 
23 error  tslint --force --format verbose "src/**/*.ts" 

. npm run cmd fails while cmd on command line works - - 참고로


, 나는이 비슷한 소리가 나는 문제를보고 한 을하지만 논의 솔루션은 내가지고있어 오류에 차이가 없습니다.


또한 참고로, 나는 현재 내가 오류 상태를 반환 기대되는 더 linting 오류, 경고, 또는 아무것도 없습니다.

답변

2

npm 스크립트가 ./node_modules/.bin을 포함하도록 PATH에 추가되기 때문에 혼란이있을 수 있습니다. 즉, tslint을 package.json에 사용하면 로컬에 설치된 버전을 node_modules이라고 말하고, tslint을 사용하면 직접 설치된 버전을 사용하고있는 것입니다. 전 세계적으로 설치된 버전 만 작동하고있는 것처럼 보입니다.

명령 줄에서 명시 적으로 경로를 지정하여이를 확인할 수 있습니다 (예 : ./node_modules/.bin/tslint --force --format verbose \"src/**/*.ts\"). 이는 node_modules 버전을 직접 사용하므로 NPM 스크립트에서 볼 수있는 것과 동일한 실패 결과를 제공해야합니다.

그래도 근본적인 문제는 해결되지 않습니다. 이유는 모르지만 로컬에 설치된 tslint가 사용하는 파일을 찾지 못하는 것 같습니다. 분명한 이유가없는 한 가장 빠른 해결책은 node_modules 폴더와 npm install 폴더를 다시 삭제하여 새 작업 버전을 삭제하는 것입니다.

종속성이 모두있는 tslint를 새로 설치하면 종속성을 모두 성공적으로로드 할 수 있으며 이러한 문제는 없어야합니다. 그럴 수 없다면 아마도 tslint로 파일하는 버그가있을 것입니다.

+0

예! 나는 네가 옳다고 믿는다. 이것으로 파고들. – ken

+0

"node_modules"를 제거하고 모든 것을 다시 빌드하고 로컬 설치를 사용하여 명령을 실행하면 전역 설치가 실패합니다. 둘 다 최신 버전입니다. 매우 이상합니다. – ken

+0

어느 쪽이든 당신의 대답은 아마도 옳은 대답이라고 생각하지만 남은 것은 다른 이슈와 같은 느낌입니다. – ken