npmAuthenticate@0 - npm 인증(작업 실행기용) v0 작업
이 작업을 사용하여 빌드 범위에 대한 리포지토리의 .npmrc
파일에 npm
자격 증명을 제공합니다. 이렇게 하면 npm
gulp 및 Grunt와 같은 npm
작업 실행기뿐만 아니라 개인 레지스트리로 인증할 수 있습니다.
구문론
# npm authenticate (for task runners) v0
# Don't use this task if you're also using the npm task. Provides npm credentials to an .npmrc file in your repository for the scope of the build. This enables npm task runners like gulp and Grunt to authenticate with private registries.
- task: npmAuthenticate@0
inputs:
workingFile: # string. Required. .npmrc file to authenticate.
#customEndpoint: # string. Credentials for registries outside this organization/collection.
입력
.npmrc 파일을 workingFile
- 인증
string
; 필수 사항입니다.
작업하려는 레지스트리를 지정하는 .npmrc
파일의 경로입니다. 폴더가 아닌 파일(예: /packages/mypackage.npmrc
)을 선택합니다.
이 조직/컬렉션외부의 레지스트리에 대한 customEndpoint
- 자격 증명
string
;
쉼표로 구분된 npm 서비스 연결 목록은 이 조직 또는 컬렉션 외부의 레지스트리에 대한 이름을. 지정된 .npmrc
파일에는 서비스 연결에 해당하는 레지스트리 항목이 포함되어야 합니다. 이 조직 또는 컬렉션에 레지스트리만 필요한 경우 이 항목을 비워 둡니다. 빌드의 자격 증명이 자동으로 사용됩니다.
작업 제어 옵션
모든 작업에는 작업 입력 외에 제어 옵션이 있습니다. 자세한 내용은 컨트롤 옵션 및 일반적인 작업 속성참조하세요.
출력 변수
없음.
비고
이 작업을 사용하여 빌드 범위에 대한 리포지토리의 .npmrc
파일에 npm
자격 증명을 제공합니다. 이렇게 하면 npm
gulp 및 Grunt와 같은 npm
작업 실행기뿐만 아니라 개인 레지스트리로 인증할 수 있습니다.
- 이 작업은 어떻게 작동하나요?
- 파이프라인에서 이 작업을 실행해야 하는 경우는 언제인가요?
- 여러 npm 프로젝트가 있습니다. 각 .npmrc 파일에 대해 이 작업을 실행해야 하나요?
- 내 에이전트가 웹 프록시 뒤에 있습니다.
npmAuthenticate
프록시를 사용하도록npm/gulp/Grunt
설정합니까? - 내 파이프라인은 다른 프로젝트 피드에 액세스해야 합니다.
이 작업은 어떻게 작동하나요?
이 작업은 지정된 .npmrc
파일에서 레지스트리 항목을 검색한 다음 검색된 레지스트리에 대한 인증 세부 정보를 파일 끝에 추가합니다. 현재 조직/컬렉션의 모든 레지스트리에 대해 빌드의 자격 증명이 사용됩니다. 다른 조직의 레지스트리 또는 타사에서 호스팅하는 레지스트리의 경우 레지스트리 URI는 customEndpoint
입력에서 지정한 npm 서비스 연결의 URI와 비교되고 해당 자격 증명이 사용됩니다.
.npmrc
파일은 파이프라인 실행이 끝날 때 원래 상태로 되돌아갑니다.
파이프라인에서 이 작업을 언제 실행해야 하나요?
azure Artifacts와 같은 인증된 npm 리포지토리에 패키지를 설치하거나 푸시하려면 npm
또는 npm
작업 실행기를 사용하기 전에 이 작업을 실행해야 합니다. 다른 주문 요구 사항은 없습니다.
여러 npm 프로젝트가 있습니다. 각 .npmrc 파일에 대해 이 작업을 실행해야 하나요?
이 작업은 한 번에 하나의 .npmrc
파일에만 인증 세부 정보를 추가합니다. 여러 .npmrc
파일에 대한 인증이 필요한 경우 각 .npmrc
파일에 대해 한 번씩 작업을 여러 번 실행할 수 있습니다. 또는 프로젝트에서 사용하는 모든 레지스트리를 지정하는 .npmrc
파일을 만들고, 이 .npmrc
파일에서 npmAuthenticate
실행한 다음, 환경 변수를 설정하여 이 .npmrc
파일을 사용자별 npm 구성 파일로 지정하는 것이 좋습니다.
- task: npmAuthenticate@0
inputs:
workingFile: $(agent.tempdirectory)/.npmrc
- script: echo ##vso[task.setvariable variable=NPM_CONFIG_USERCONFIG]$(agent.tempdirectory)/.npmrc
- script: npm ci
workingDirectory: project1
- script: npm ci
workingDirectory: project2
내 에이전트가 웹 프록시 뒤에 있습니다.
npmAuthenticate
프록시를 사용하도록 npm/gulp/Grunt
설정합니까?
그렇지 않을 것입니다. 이 작업 자체는 사용하도록 에이전트가 구성된웹 프록시 뒤에서 작동하지만 npm
구성하거나 작업 실행기에서 프록시를 사용하도록 npm
구성하지 않습니다.
이렇게 하려면 다음 중 하나를 수행할 수 있습니다.
환경 변수를
http_proxy
/https_proxy
설정하고 필요에 따라 프록시 설정으로no_proxy
. 자세한 내용은 npm 구성 참조하세요. 이러한 변수는 다른 비npm
도구(예: curl)도 사용할 수 있는 일반적으로 사용되는 변수입니다.npm 구성 집합사용하거나
NPM_CONFIG_
접두사로 환경 변수를 설정하여 npm 구성프록시 설정을 추가합니다.주의:
npm
작업 실행기는npm
지원하는 프록시 구성의 모든 메서드와 호환되지 않을 수 있습니다.npm
호출할 때 명령줄 플래그를 사용하여 프록시를 지정합니다.- script: npm ci --https-proxy $(agent.proxyurl)
프록시에 인증이 필요한 경우 인증된 프록시 URI를 생성하기 위해 추가 빌드 단계를 추가해야 할 수 있습니다.
- script: node -e "let u = url.parse(`$(agent.proxyurl)`); u.auth = `$(agent.proxyusername):$(agent.proxypassword)`; console.log(`##vso[task.setvariable variable=proxyAuthUri;issecret=true]` + url.format(u))"
- script: npm publish --https-proxy $(proxyAuthUri)
내 파이프라인이 다른 프로젝트의 피드에 액세스해야 합니다.
파이프라인이 피드를 호스팅하는 프로젝트와 다른 프로젝트에서 실행되는 경우 빌드 서비스에 대한 읽기/쓰기 액세스 권한을 부여하도록 다른 프로젝트를 설정해야 합니다. 자세한 내용은 Azure Pipelines 패키지 권한을 참조하세요.
예시
조직 내 레지스트리에서 프로젝트에 대한 npm
패키지 복원
사용하는 유일한 인증된 레지스트리가 조직의 Azure Artifacts 레지스트리인 경우 npmAuthenticate
작업에 대한 .npmrc
파일 경로를 지정하기만 하면 됩니다.
.npmrc
registry=https://pkgs.dev.azure.com/{organization}/_packaging/{feed}/npm/registry/
always-auth=true
npm
- task: npmAuthenticate@0
inputs:
workingFile: .npmrc
- script: npm ci
# ...
- script: npm publish
조직 외부의 npm
패키지 복원 및 게시
.npmrc
다른 조직의 Azure Artifacts 레지스트리를 포함하거나 타사 인증된 패키지 리포지토리를 사용하는 경우 npm 서비스 연결을 설정하고 customEndpoint
입력에 지정해야 합니다.
Azure Artifacts 조직 내의 레지스트리도 자동으로 인증됩니다.
.npmrc
registry=https://pkgs.dev.azure.com/{organization}/{project}/_packaging/{feed}/npm/registry/
@{scope}:registry=https://pkgs.dev.azure.com/{otherorganization}/_packaging/{feed}/npm/registry/
@{otherscope}:registry=https://{thirdPartyRepository}/npm/registry/
always-auth=true
Azure Artifacts 피드를 가리키는 레지스트리 URL은 프로젝트를 포함하거나 포함하지 않을 수 있습니다. 프로젝트 범위 피드의 URL은 프로젝트를 포함해야 하며 조직 범위 피드의 URL에는 프로젝트가 포함되어서는 안됩니다. 프로젝트 범위 피드 대해 자세히 알아봅니다.
npm
- task: npmAuthenticate@0
inputs:
workingFile: .npmrc
customEndpoint: OtherOrganizationNpmConnection, ThirdPartyRepositoryNpmConnection
- script: npm ci
# ...
- script: npm publish -registry https://pkgs.dev.azure.com/{otherorganization}/_packaging/{feed}/npm/registry/
OtherOrganizationNpmConnection
및 ThirdPartyRepositoryNpmConnection
파이프라인에서 사용하도록 구성되고 권한이 부여된 npm 서비스 연결 이름이고 지정된 .npmrc
파일의 URL과 일치하는 URL이 있습니다.