2017-10-24 7 views
3

우리는 TFS 빌드 작업을 사용 중이고 작업 중 하나는 npm install입니다. 이것은 배치 또는 powershell 파일을 통해서가 아닙니다.TFS npm install Build Task Hanging?

이 성공적으로 실행하지만 완료 후 약 3 ~ 4 분 동안 응답 것 같습니다. 작업 요약에 성공적으로 완료되었지만 3 ~ 4 분 동안 다음 작업이 시작되지 않기 때문에이 사실을 알고 있습니다. 내가 작업을 추가 할 때

원래, 나는 다음과 같이 놀았어요 생각하지 않습니다. 나는 무엇이 바뀌 었는지 확신하지 못한다.

npm set progress=false을 사용해 보았습니다. this forum에서 권장되었으며 this article에 설명되어 있습니다. 관련성이없는 것 같아서 npm-cache을 추가하지 않았습니다. 빌드 작업이 성공적으로 완료된 다음 중단됩니다.

완료 후 npm 태스크가 중단 될 수있는 원인은 무엇입니까?

답변

1

귀하의 설명에 따르면, 그것은 의미가 있습니다. NPM을 설치하면 패키지가 이미 설치되었는지 확인하는 데 3-4 분이 걸리기 때문에 시간 낭비입니다.

주먹은 TFS의 성능이 정상인지 확인하기 위해 콘솔에서 NPM 실행 해보십시오. 모든 NPM 타스크에 오랜 시간이 걸리면 nodejs v 전과 관련이 있습니다.

는 예를 들어, 같은 빌드 에이전트에 설치 nodejs (8.2.0)와 같은 최신 버전을 사용하고 있습니다. 그런 다음 최신 LTS (장기 지원) 버전 (6.11.1)으로 다운 그레이드하면 문제가 해결 될 수 있습니다. 자세한 내용은 blog을 참조하십시오. 당신이 빌드 에이전트를 구축에 사내 사용하기 때문에


또 다른 방법은 다른 방법으로 npm-cache을 사용하고 있습니다.

그것은 실행 빌드 프로세스에 유용하다 [NPM을 | 이물 | 작곡가 | 니혼 전자 : JSPM] 자신의 빌드 프로세스의 일부로마다 설치합니다. 종속성 은 자주 변경되지 않으므로 빌드 시간이 느려집니다. npm-cache 은 이전에 설치된 종속성을 캐싱하여이 문제를 완화하는 데 도움이됩니다. npm-cache는 [npm | bower | composer | jspm] install을 실행하는 빌드 스크립트 대신에 을 대체 할 수 있습니다.

이 작동하는 방법

당신은 NPM-캐시가 설치 실행하면 [NPM | 이물 | 니혼 전자 : JSPM | 작곡가, 먼저 는 현재의 package.json, bower.json, 또는 composer.json를 찾습니다 어떤 종속성 관리자가 요청되었는지에 따라 작업 디렉토리. 그런 다음 구성 파일의 MD5 해시를 계산하고 캐시 디렉토리 (기본적으로 $ HOME/.package_cache )의 .tar.gz 파일에 대해 을 찾습니다. 파일이 없으면 npm-cache는 시스템의 설치된 종속성 관리자를 사용하여 종속성을 설치합니다. 종속성이 설치되면 npm-cache는 새로 다운로드 된 종속성을 tar로 캐쉬 디렉토리에 저장합니다.다음 번에 npm-cache가 실행되어 동일한 구성 파일을 볼 때 캐시 디렉토리에 tarball 을 찾고 현재 작업 디렉토리의 종속성을 untar합니다.

참조 용 샘플 : Speed up your npm dependent CI build

+0

내가 최신 LTS 버전 (6.11.4)에 "다운 그레이드"하고 일했다! 아주 많이 Patrick-MSFT에 감사드립니다! – christo8989

+1

노드 8.9 LTS ([email protected], [email protected], [email protected] 빌드, npm 빌드 [email protected])를 사용하여 ~ 6 분의 지연이 있습니다. 이는 npm 명령이 사용 된 것과 상관없이,'npm version'조차도 6 분이 걸립니다. – dalle