Yarn: 개인 νŒ¨ν‚€μ§€ 지원

에 λ§Œλ“  2016λ…„ 10μ›” 06일  Β·  69μ½”λ©˜νŠΈ  Β·  좜처: yarnpkg/yarn

개인 νŒ¨ν‚€μ§€ μ„€μΉ˜λ₯Ό ν—ˆμš©ν•˜λ €λ©΄ Yarn이 μš”μ²­ 헀더에 토큰을 보내야 ν•©λ‹ˆλ‹€.

개인 νŒ¨ν‚€μ§€λŠ” @scoped/packages 으둜 μΆœνŒλ˜μ—ˆλ‹€κ°€ npm publish --access=restricted . νŒ¨ν‚€μ§€μ˜ κΆŒν•œμ€ 아직 μΆ”κ°€λ˜μ§€ μ•Šμ€ npm access 및 npm team λ₯Ό 톡해 관리 λ©λ‹ˆλ‹€.

npm ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ 이 토큰은 .npmrc 되며 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

<strong i="15">@nameofscope</strong>:registry=https://registry.npmjs.com/
//registry.npmjs.com/:_authToken=abc123

그리고 λ‹€μŒ ν—€λ”λ‘œ μ „μ†‘λ©λ‹ˆλ‹€.

Authorization: Bearer abc123
# alternatively:
Authorization: Basic username:password # <= base64

토큰을 κ²€μƒ‰ν•˜κΈ° μœ„ν•œ νŒ¨ν‚€μ§€ κ°€ μžˆμŠ΅λ‹ˆλ‹€. npmκ³Ό 같은 λ°©μ‹μœΌλ‘œ 토큰을 μ €μž₯ν•˜κ³  싢지 μ•Šμ„ μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

이 토큰은 .npmrc 에 npm login .npmrc 에 μΆ”κ°€λ©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ yarn login λŠ” 인증쑰차 ν•˜μ§€ μ•ŠμœΌλ―€λ‘œ(μ‚¬μš©μž 이름과 μ΄λ©”μΌλ§Œ μ €μž₯) μ‚¬μš©μžκ°€ μ„€μΉ˜ μ‹œ μΈμ¦ν•˜λ„λ‘ κ°•μ œν•  수 μžˆμŠ΅λ‹ˆλ‹€(이 경우 μΌμ’…μ˜ CI μ„œλ²„μš© μ„€μΉ˜ μŠ€ν¬λ¦½νŒ…μ„ ν•΄κ²°ν•΄μ•Ό ν•©λ‹ˆλ‹€. ν™˜κ²½ λ³€μˆ˜).

λ˜ν•œ Yarn μ‚¬μš©μžκ°€ μ‹€μˆ˜λ‘œ 무언가λ₯Ό 곡개적으둜 κ²Œμ‹œν•˜μ§€ μ•Šλ„λ‘ ν•΄μ•Ό ν•©λ‹ˆλ‹€.

cat-compatibility triaged

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

λŒ“κΈ€λ³΄λ‹€λŠ” 곡감을 μ΄μš©ν•΄μ£Όμ„Έμš”.

λͺ¨λ“  69 λŒ“κΈ€

여기에 이미 npm 둜그인 및 인증 둜직이 μžˆμŠ΅λ‹ˆλ‹€ . μ›Œν¬ν”Œλ‘œλ₯Ό μ •λ ¬ν•˜κΈ°λ§Œ ν•˜λ©΄ λ©λ‹ˆλ‹€.

개인 λ ˆμ§€μŠ€νŠΈλ¦¬μ— 항상 인증 토큰이 ν•„μš”ν•œ 것은 μ•„λ‹™λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ νšŒμ‚¬ VPN을 톡해 개인 λ ˆμ§€μŠ€νŠΈλ¦¬μ— μ•‘μ„ΈμŠ€ν•©λ‹ˆλ‹€.

^^ λ™μ˜ν•©λ‹ˆλ‹€. _λ²”μœ„λ‹Ή_ λ³„λ„μ˜ λ ˆμ§€μŠ€νŠΈλ¦¬ 연결을 ν—ˆμš©ν•˜λŠ” κ²ƒλ§ŒμœΌλ‘œλ„ μΆ©λΆ„ν•©λ‹ˆλ‹€(λ‹€λ₯Έ λ§Žμ€ μ‚¬λžŒλ“€λ„ μ˜μ‹¬λ©λ‹ˆλ‹€).

이 경우 μΌμ’…μ˜ ν™˜κ²½ λ³€μˆ˜λ₯Ό 톡해 CI μ„œλ²„μ— λŒ€ν•œ μ΄λŸ¬ν•œ μ„€μΉ˜ μŠ€ν¬λ¦½νŒ…μ„ ν•΄κ²°ν•΄μ•Ό ν•©λ‹ˆλ‹€.

"이미 이 논리가 μžˆμŠ΅λ‹ˆλ‹€"라고 λ§ν•˜λ©΄ Authorization 헀더가 λ ˆμ§€μŠ€νŠΈλ¦¬λ‘œ μ „μ†‘λ˜λŠ” κ²½λ‘œκ°€ ν‘œμ‹œλ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. ν•˜λ‚˜κ°€ μžˆλ‹€λ©΄ 더 μ΅œμ’…μ μΈ 것이 μ •λ¦¬λ˜λŠ” λ™μ•ˆ 이 λͺ¨λ“  것이 μž‘λ™ν•˜λ„λ‘ ν•˜λŠ” μž„μ‹œ ν•΄κ²° 방법이 μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. λ‚΄κ°€ λ­”κ°€λ₯Ό λ†“μΉ˜κ³  μžˆμŠ΅λ‹ˆκΉŒ?

+1은 곡개된 νŒ¨ν‚€μ§€κ°€ μ‹€νŒ¨ν•œ κ²ƒμ²˜λŸΌ 보이더라도 λ²”μœ„κ°€ μ§€μ •λœ νŒ¨ν‚€μ§€μ²˜λŸΌ λ³΄μž…λ‹ˆλ‹€.

@djforth 의 μΆ”κ°€ ν–ˆλŠ”λ° λ™μΌν•œ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€. λ²”μœ„ νŒ¨ν‚€μ§€κ°€ μ‹€νŒ¨ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. νŒ¨ν‚€μ§€ μ΄λ¦„μ˜ / λ₯Ό %2f ν•©λ‹ˆλ‹€. μ΄λŠ” νŒ¨ν‚€μ§€λ₯Ό μ°ΎκΈ° μœ„ν•œ npm μš”μ²­μ΄ μ‹€νŒ¨ν•¨μ„ μ˜λ―Έν•©λ‹ˆλ‹€.

예: Error: https://registry.yarnpkg.com/@company%2fdata: Not found

인증이 ν•„μš”ν•œ 경우 μ‹€νŒ¨ν•˜λŠ” λ°©μ‹μž…λ‹ˆλ‹€. 곡개 λ²”μœ„ νŒ¨ν‚€μ§€μ—μ„œ μž‘λ™ν•˜λ„λ‘ ν–ˆμŠ΅λ‹ˆλ‹€.

#839 및 #1146으둜 μˆ˜μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.

@devongovett λͺ‡ 가지 λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.


λ‹€μŒμ€ 인증을 μ‚¬μš©ν•΄μ•Ό ν•˜λŠ”μ§€ μ—¬λΆ€λ₯Ό ν™•μΈν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

    if (this.token || (alwaysAuth && requestUrl.startsWith(registry))) {
      headers.authorization = this.getAuth(pathname);
    }

λ ˆμ§€μŠ€νŠΈλ¦¬κ°€ http://registry.npmjs.org/ 이면 https μš”μ²­μ€ requestUrl.startsWith(registry) λ•Œλ¬Έμ— 인증을 μ²¨λΆ€ν•˜μ§€ λͺ»ν•©λ‹ˆλ‹€.


yarn config get registry λ₯Ό registry.yarnpkg.org 둜 μ„€μ •ν–ˆλŠ”λ° @my-org:registry': 'https://registry.npmjs.org/', λŒ€μ‹  개인 λͺ¨λ“ˆμ„ κ°€μ Έμ˜€λ €κ³  ν•  λ•Œ μ‚¬μš©λ˜μ—ˆμŠ΅λ‹ˆλ‹€.


κ·Έλž˜μ„œ λ‚˜λ₯Όμœ„ν•œ μˆ˜μ • 사항은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

//if (this.token || (alwaysAuth && requestUrl.startsWith(registry))) {
if (this.token || (alwaysAuth)) {

λ‚˜λŠ” λ˜ν•œ NpmRegistry#request to @my-org%2fmodule λŒ€ν•œ 초기 ν˜ΈμΆœμ„

예, ν˜„μž¬λŠ” λŒ€μ²΄ https://registry.npmjs.com/을 ν•¨κ»˜ https://registry.yarnpkg.com/ 여기에 체크λ₯Ό ν˜Όλ™ν•˜λŠ”, μ—¬κΈ° .

νŽΈμ§‘: 이 κ²Œμ‹œλ¬Όμ„ λ¬΄μ‹œν•˜μ‹­μ‹œμ˜€ - 그것은 단지 μ–΄λ–€ 이유둜 μž‘λ™ν•˜κΈ° μ‹œμž‘ν–ˆμŠ΅λ‹ˆλ‹€.

npm adduser --registry=http://registry.npmjs.org --scope=<strong i="7">@foo</strong> --always-auth μ‚¬μš©ν•˜μ—¬ npmμ—μ„œ scope 에 λ‘œκ·ΈμΈν•΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€.


λ‚΄κ°€ μ‹€ν–‰ν•  λ•Œ :

npm3 adduser --registry=http://registry.npmjs.org --scope=<strong i="12">@foo</strong> --always-auth

λ‚΄ npm은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

_auth="xxx"
[email protected]
strict-ssl=false
//registry.npmjs.org/:_authToken=xxx
registry=http://registry.npmjs.org/
<strong i="16">@foo</strong>:registry=http://registry.npmjs.org/
save=false
save-exact=false
save-prefix=^
always-auth=true

NpmRegistry#getAuth λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

  getAuth(packageName: string): string {

    if (this.token) {
      return this.token;
    }

    for (let registry of [this.getRegistry(packageName), '', DEFAULT_REGISTRY]) {
      registry = registry.replace(/^https?:/, '');

      // Check for bearer token.
      console.log({registry})
      let auth = this.getScopedOption(registry, '_authToken');
      if (auth) {
        return `Bearer ${String(auth)}`;
      }

      // Check for basic auth token.
      auth = this.getScopedOption(registry, '_auth');
      if (auth) {
        return `Basic ${String(auth)}`;
      }

      // Check for basic username/password auth.
      const username = this.getScopedOption(registry, 'username');
      const password = this.getScopedOption(registry, '_password');
      if (username && password) {
        const pw = new Buffer(String(password), 'base64').toString();
        return 'Basic ' + new Buffer(String(username) + ':' + pw).toString('base64');
      }
    }

    return '';
  }

승인 헀더 Basic xxx μ‚¬μš©ν•˜μ—¬ λλ‚©λ‹ˆλ‹€. _auth ν‚€λ₯Ό μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

이봐,
Sinopia둜 λ§Œλ“  λΉ„κ³΅κ°œ npm λ ˆμ§€μŠ€νŠΈλ¦¬μ— κ²Œμ‹œν•  수 μžˆλŠ” μ‚¬λžŒμ΄ μžˆμŠ΅λ‹ˆκΉŒ? npm publish κ·Έλ ‡κ²Œ ν•  수 μžˆμ§€λ§Œ yarn publish λŠ” κ²Œμ‹œ λ‹¨κ³„μ—μ„œ μ˜μ›νžˆ κ±Έλ¦½λ‹ˆλ‹€. yarn config set registry λ ˆμ§€μŠ€νŠΈλ¦¬λ₯Ό λ³€κ²½ν–ˆμŠ΅λ‹ˆλ‹€. 둜그인 λ‹¨κ³„μ—μ„œ λΉ„λ°€λ²ˆν˜Έλ₯Ό μž…λ ₯ν•˜λΌλŠ” λ©”μ‹œμ§€κ°€ ν‘œμ‹œλ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

개인 νŒ¨ν‚€μ§€μ— λŒ€ν•œ μˆ˜μ • 사항이 μžˆμŠ΅λ‹ˆκΉŒ? μœ„μ—μ„œ μ„€λͺ…ν•œ 문제 @devongovett λŠ” CIμ—μ„œ μ €λ₯Ό yarn config set registry https://registry.npmjs.org/ 둜 개인 νŒ¨ν‚€μ§€μ— λŒ€ν•œ μš”μ²­μ— λŒ€ν•΄ yarn이 인증 토큰을 μ„€μ •ν•˜λ„λ‘ ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

저도 yarn login κ°€ λΉ„λ°€λ²ˆν˜Έλ₯Ό 묻지 μ•Šμ•„ Gemfury(https://gemfury.com)λ₯Ό μ‚¬μš©ν•  수 μ—†λ‹€λŠ” 문제λ₯Ό κ²ͺκ³  μžˆμŠ΅λ‹ˆλ‹€. 이 λ¬Έμ œμ™€ 관련이 μžˆλŠ”μ§€ ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 이에 λŒ€ν•΄ λ³„λ„μ˜ 문제λ₯Ό λ§Œλ“€μ–΄μ•Ό ν•©λ‹ˆκΉŒ?

μ–ΈκΈ‰ν•˜μ§€ μ•Šμ€ 또 λ‹€λ₯Έ μ‚¬μš© 사둀:

git μ €μž₯μ†ŒλŠ” https λ˜λŠ” sshλ₯Ό 톡해 κ°€μ Έμ˜¬ 수 μžˆμŠ΅λ‹ˆλ‹€. μ €μž₯μ†Œκ°€ λΉ„κ³΅κ°œμΈ 경우 자격 증λͺ…이 ν•„μš”ν•©λ‹ˆλ‹€(duh). Heroku에 배포할 λ•Œ .netrc λŠ” .netrc λΉŒλ“œνŒ©μ„ μ‚¬μš©

@rovansteen yarn login μ˜λ„μ μœΌλ‘œ λΉ„λ°€λ²ˆν˜Έλ₯Ό 묻지 μ•ŠμŠ΅λ‹ˆλ‹€. 잘λͺ»λœ λ³΄μ•ˆ 관행이기 λ•Œλ¬Έμ— 자격 증λͺ…μ΄λ‚˜ API 토큰을 μ €μž₯ν•˜κ³  싢지 μ•ŠμŠ΅λ‹ˆλ‹€.

@thejameskyle μ•„, 말이 λ˜λ„€μš”. Gemfuryμ—λŠ” API 토큰을 μ‚¬μš©ν•˜λŠ” 방법이 있으며 Yarnκ³Ό 잘 μž‘λ™ν•œλ‹€λŠ” 것을 μ•Œμ•˜μŠ΅λ‹ˆλ‹€. 감사 ν•΄μš”!

개인 λ²”μœ„ κ΄€λ ¨ λ ˆμ§€μŠ€νŠΈλ¦¬μ—μ„œ μ‹€μ œ tarball을 κ°€μ Έμ˜€λŠ” 데 λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€. λ©”νƒ€λ°μ΄ν„°λŠ” μ •μƒμ μœΌλ‘œ μˆ˜μ‹ λ˜μ§€λ§Œ tarball μš”μ²­μ— κΆŒν•œ λΆ€μ—¬ 헀더가 ν¬ν•¨λ˜μ§€ μ•Šμ€ 것 κ°™μŠ΅λ‹ˆλ‹€.

NpmRegistry#request 이 행이 λ²”μΈμœΌλ‘œ λ³΄μž…λ‹ˆλ‹€. λŒ€μ‹  νŒ¨ν‚€μ§€ 이름을 κΈ°λŒ€ν•˜λŠ” κ²ƒμ²˜λŸΌ 보일 λ•Œ tarball의 경둜둜 getRegistry λ₯Ό ν˜ΈμΆœν•©λ‹ˆλ‹€. κ·Έ λ•Œλ¬Έμ— λ²”μœ„λ₯Ό 검색할 수 μ—†κ³  κΈ°λ³Έ λ ˆμ§€μŠ€νŠΈλ¦¬μ— λŒ€ν•œ μ„€μ •μœΌλ‘œ λŒ€μ²΄λ©λ‹ˆλ‹€.

URLμ—μ„œ λ²”μœ„λ₯Ό κ²°μ •ν•˜κΈ° μœ„ν•΄ getScope λ₯Ό ν™•μž₯ν•˜λŠ” 것을 상상할 수 μžˆμ§€λ§Œ(μ΄λ ‡κ²Œ ν•˜λ©΄ PR을 μ—΄ 수 μžˆμ–΄ κΈ°μ©λ‹ˆλ‹€), 잠재적으둜 였λ₯˜κ°€ λ°œμƒν•˜κΈ° μ‰¬μš΄ 것 κ°™μŠ΅λ‹ˆλ‹€. μ—°κ²°λœ νŒ¨ν‚€μ§€ 이름을 μ—°κ²°ν•΄μ•Ό ν•©λ‹ˆκΉŒ?

(νŽΈμ§‘: https://github.com/yarnpkg/yarn/issues/1619#issuecomment-258282647에도 λ‚˜μ˜¨ 것 κ°™μŠ΅λ‹ˆλ‹€)

@dfreeman κ³Ό λ™μΌν•œ λ¬Έμ œκ°€ ν‘œμ‹œλ˜κ³  λ²”μœ„κ°€ μΈμ‹λ˜κ³  λ ˆμ§€μŠ€νŠΈλ¦¬κ°€ μΏΌλ¦¬λ©λ‹ˆλ‹€. μ˜¬λ°”λ₯Έ tarball URLκ³Ό ν•΄μ‹œκ°€ κ²€μƒ‰λ˜μ§€λ§Œ λ‹€μš΄λ‘œλ“œμ— μ˜¬λ°”λ₯Έ Authorization 헀더가 ν¬ν•¨λ˜μ–΄ μžˆμ§€ μ•Šμ•„ 응닡 본문이 μ—†λŠ” λ‹€μš΄λ‘œλ“œκ°€ λ°œμƒν•©λ‹ˆλ‹€. 그러면 Yarn은 ν•΄μ‹œ 뢈일치둜 ν•΄κ²°λ©λ‹ˆλ‹€. 였λ₯˜λŠ” 항상 빈 파일의 샀인 but got da39a3ee5e6b4b0d3255bfef95601890afd80709 λΆˆν‰ν•©λ‹ˆλ‹€.

> touch empty
> openssl sha1 empty
SHA1(empty)= da39a3ee5e6b4b0d3255bfef95601890afd80709

νŽΈμ§‘: 이것이 μƒˆλ‘œμš΄ 문제둜 μ œκΈ°λ˜μ–΄μ•Ό ν•˜λŠ”μ§€ μ•Œλ €μ£Όμ„Έμš”

기본적으둜 jfrog에 λŒ€ν•΄ μΈμ¦ν•˜λŠ” 원사λ₯Ό μ–»μ—ˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 좜판이 μ€‘λ‹¨λœ 것 κ°™μŠ΅λ‹ˆλ‹€.
κ·Έλƒ₯ λ§‰νžˆλŠ”λ° ​​μž₯ν™©ν•œ λ‘œκ·Έλ‚˜ λ‹€λ₯Έ 것이 μ—†κΈ° λ•Œλ¬Έμ— μ–΄λ–»κ²Œ 진행해야 할지 잘 λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€. μ—…λ‘œλ“œλ‘œ μΈν•œ λ„€νŠΈμ›Œν¬ νŠΈλž˜ν”½μ‘°μ°¨ λ³Ό 수 μ—†μ—ˆμŠ΅λ‹ˆλ‹€.

$ yarn publish --access restricted --new-version 2.0.2+1478176271464 .
yarn publish v0.16.1
[1/4] Bumping version...
info Current version: 2.0.2+SNAPSHOT
info New version: 2.0.2+1478176271464
[2/4] Logging in...
[3/4] Publishing...

λŒ“κΈ€λ³΄λ‹€λŠ” 곡감을 μ΄μš©ν•΄μ£Όμ„Έμš”.

λ‚˜λŠ” μš°λ¦¬κ°€ μ°¬μ„±ν•˜κ³  λŒ“κΈ€μ„ 달지 말아야 ν•œλ‹€λŠ” 것을 μ•Œκ³  μžˆμ§€λ§Œ λ§ˆμ§€λ§‰ λŒ“κΈ€μ€ 거의 2κ°œμ›”μ΄ 지났고 μš°λ¦¬κ°€ λ„μšΈ 수 μžˆλŠ” 것이 μžˆλŠ”μ§€ 확신이 μ„œμ§€ μ•ŠμŠ΅λ‹ˆλ‹€!

.yarnrc 파일이 λ‹€μŒμ„ ν¬ν•¨ν•˜λŠ” μ‚¬μš©μž 폴더(Mac의 경우) λ£¨νŠΈμ— 있음

λ ˆμ§€μŠ€νŠΈλ¦¬ " https://npm.some-internal-site.tld "

일뢀 λ‚΄λΆ€ νŒ¨ν‚€μ§€λ₯Ό λ‹€μš΄λ‘œλ“œν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. 큰 κ²½κ³ λŠ” μ‚¬μš©μž 이름/λΉ„λ°€λ²ˆν˜Έκ°€ μ•„λ‹Œ μ‚¬μ΄νŠΈμ—μ„œ μ•‘μ„ΈμŠ€λ₯Ό μ œμ–΄ν•œλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.
도움이 λ˜μ—ˆκΈ°λ₯Ό λ°”λžλ‹ˆλ‹€.

이것이 μž‘λ™ν•˜λŠ” 것이 ν™•μ‹€ν•©λ‹ˆκΉŒ ... ? λ‚˜λŠ” λͺ‡ 달 λ™μ•ˆ λΉ„κ³΅κ°œ λ²”μœ„ νŒ¨ν‚€μ§€μ™€ ν•¨κ»˜ yarn λ₯Ό μ‚¬μš©ν•΄ μ™”μŠ΅λ‹ˆλ‹€.

@thejameskyle - μ—¬μ „νžˆ 개인 λ²”μœ„ νŒ¨ν‚€μ§€μ— λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆκΉŒ?

@shakefu 이 μ‹œμ μ—μ„œ 개인 νŒ¨ν‚€μ§€μ— λŒ€ν•œ μœ μΌν•œ λ¬Έμ œλŠ” .npmrc 파일의 맨 μœ„μ— registry=https://registry.npmjs.org/ λ₯Ό μΆ”κ°€ν•΄μ•Ό ν•œλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. npm login λŠ” ν† ν°μ΄μ§€λ§Œ λ‹€λ₯Έ 것은 μ—†μŠ΅λ‹ˆλ‹€.

μš°λ¦¬λŠ” λ˜ν•œ 개인 λ²”μœ„ νŒ¨ν‚€μ§€μ™€ ν•¨κ»˜ 원사λ₯Ό μ‚¬μš©ν•˜λ©° 잘 μž‘λ™ν•©λ‹ˆλ‹€. λ‚΄ .npmrc에 μžˆλŠ” μœ μΌν•œ 것은 prefix=/Users/./npm 및 //registry.npm.../authToken λΌμΈμž…λ‹ˆλ‹€.

npm이 μ΅œμ‹  μƒνƒœμΈμ§€ ν™•μΈν•˜κ³  νŒŒμΌμ„ μ§€μš°κ³  λ‹€μ‹œ λ‘œκ·ΈμΈν•˜μ‹œκ² μŠ΅λ‹ˆκΉŒ?

우리 νŒ€μ— 또 λ‹€λ₯Έ μ‚¬λžŒμ΄ 발견 registry μ§€μ‹œλ¬Έ .npmrc μ™„μ „νžˆ 개인적으둜 λ²”μœ„ νŒ¨ν‚€μ§€λ₯Ό 얻을 μˆ˜μžˆλŠ” λŠ₯λ ₯을 망쳐.

@hereandnow λ‚΄ .npmrc νŒŒμΌμ€ ν”„λ‘œμ νŠΈμ˜ λ£¨νŠΈμ— 있으며 λ‹€μŒμ„ ν¬ν•¨ν•©λ‹ˆλ‹€.

//registry.npmjs.org/:_authToken=${NPM_TOKEN}

μ–ΈκΈ‰ν–ˆλ“―μ΄ λΉ„κ³΅κ°œ λ²”μœ„ νŒ¨ν‚€μ§€λŠ” npmκ³Ό λ™μΌν•˜κ²Œ μž‘λ™ν•©λ‹ˆλ‹€.
μ €λŠ” 원사 버전이 >= 0.19.1 이고 export NPM_TOKEN μ–΄λ”˜κ°€μ— μžˆλ‹€κ³  κ°€μ •ν•©λ‹ˆλ‹€.

λ„μ™€μ€˜μ„œ κ³ λ§ˆμ›Œ'!

//registry.npmjs.org/:_authToken=${NPM_TOKEN} κ°€ μžˆλŠ” .npmrcκ°€ ν”„λ‘œμ νŠΈμ˜ λ™μΌν•œ λ£¨νŠΈμ— μžˆλŠ” κ²½μš°μ—λ§Œ μž‘λ™ν•©λ‹ˆλ‹€. %LOCALUSER% 폴더(Mac λ˜λŠ” Windows)에 ν‘œμ€€ 절차 npm login μƒμ„±λœ κ²½μš°λŠ” μ•„λ‹™λ‹ˆλ‹€.

이 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 방법은 λ¬΄μ—‡μž…λ‹ˆκΉŒ?

@carmelone 맨 μœ„μ— registry=https://registry.npmjs.org/ λ₯Ό ν¬ν•¨ν•˜λ„λ‘ ν™ˆ λ””λ ‰ν† λ¦¬μ˜ .npmrc 을 μˆ˜μ •ν•˜μ‹­μ‹œμ˜€.

μ•„λ‹ˆμš”, 개인 μ €μž₯μ†Œλ₯Ό μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 그리고 npmjs μ—μ„œ λ‹€μš΄λ‘œλ“œν•œ 일뢀

@carmelone λ‹˜λ„ 그것이 우리의 문제라고 μƒκ°ν•©λ‹ˆλ‹€. 개인 λ ˆμ§€μŠ€νŠΈλ¦¬μ™€ npmjs λ ˆμ§€μŠ€νŠΈλ¦¬μ˜ 쑰합이 문제죠?

개인 λ ˆμ§€μŠ€νŠΈλ¦¬ λ²”μœ„λ₯Ό ~/.yarnrc μΆ”κ°€ν•˜λ©΄ 개인 λ ˆμ§€μŠ€νŠΈλ¦¬μ—μ„œ 일뢀 νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μΌλΆ€λŠ” NPMJS λ ˆμ§€μŠ€νŠΈλ¦¬μ—μ„œ 자체 쒅속성이 μ—†λŠ” κ²ƒλ“€μž…λ‹ˆλ‹€.

@jakubzitny , 예, 그리고 npm login npm이 λ‚΄ %USERFOLDER%에 인증 토큰이 μžˆλŠ” .npmrc νŒŒμΌμ„ μ˜¬λ°”λ₯΄κ²Œ 생성할 λ•Œλ„ λ§ˆμ°¬κ°€μ§€μž…λ‹ˆλ‹€. ν”„λ‘œμ νŠΈμ˜ .npmrcμ—μ„œ ν•΄λ‹Ή 인증을 μ›ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ‚΄ PC의 μ‚¬μš©μž 이름 ν΄λ”μ—λ§Œ μžˆμŠ΅λ‹ˆλ‹€. 이게 문제 μ•Ό. yarn은 ν•΄λ‹Ή 인증 토큰을 μΈμ‹ν•˜μ§€ λͺ»ν•©λ‹ˆλ‹€.

@jakubzitny @carmelone κ·Έλž˜μ„œ λ¬Έμ œλŠ” λΉ„κ³΅κ°œ 및 곡개 μ €μž₯μ†Œμ˜ 쀑첩 쒅속성을 ν˜Όν•©ν•˜λŠ” κ²ƒμž…λ‹ˆκΉŒ? λ‚˜λŠ” 그것이 ν˜„μž¬ μ›μ‚¬μ—μ„œ μž‘λ™ν•˜μ§€ μ•Šμ„ 것이라고 ν™•μ‹ ν•©λ‹ˆλ‹€. λ‹€λ₯Έ 문제λ₯Ό μ—΄μ–΄μ•Ό ν•  것 κ°™μŠ΅λ‹ˆλ‹€.

개인 λ²”μœ„ λͺ¨λ“ˆ(npm λ ˆμ§€μŠ€νŠΈλ¦¬μ—μ„œ)이 μž‘λ™ν•˜λ„λ‘ ν•˜λ €κ³  ν–ˆκ³  .yarnrcμ—μ„œ (yarn ꡬ성을 톡해) λ ˆμ§€μŠ€νŠΈλ¦¬ ꡬ성을 μ„€μ •ν•΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€.

$ yarn config set registry https://registry.npmjs.org/

λ ˆμ§€μŠ€νŠΈλ¦¬λ₯Ό μ„€μ •ν•΄μ•Ό ν–ˆλ˜ 뢄듀을 μœ„ν•΄ npm login --scope=@<yourscope> λ₯Ό μ‚¬μš©ν•΄

적어도 μ €μ—κ²Œ μž‘λ™ν•˜μ§€ μ•ŠλŠ” 것은 bintray.com 개인 λ ˆμ§€μŠ€νŠΈλ¦¬μ˜ λ²”μœ„κ°€ μ§€μ •λœ 개인 νŒ¨ν‚€μ§€μž…λ‹ˆλ‹€. 쒅속성 ν•΄κ²° 쀑에 λ ˆμ§€μŠ€νŠΈλ¦¬ 인증이 μž‘λ™ν•˜μ§€λ§Œ bintray.com λ ˆμ§€μŠ€νŠΈλ¦¬κ°€ λ°˜ν™˜ν•˜λŠ” λ‹€μš΄λ‘œλ“œ 링크가 λ‹€λ₯Έ 도메인을 κ°€λ¦¬ν‚€λ―€λ‘œ yarn이 λ‹€μš΄λ‘œλ“œν•  μ˜¬λ°”λ₯Έ 인증 토큰을 보내지 μ•ŠμŠ΅λ‹ˆλ‹€.

@shishkin 은 'npm config set always-auth true'둜 μ‹œλ„ https://docs.npmjs.com/misc/config μ°Έμ‘°

@shishkin 은 'npm config set always-auth true'둜 μ‹œλ„ https://docs.npmjs.com/misc/config μ°Έμ‘°

@Tapppi λ„€, μ‹œλ„ν–ˆμŠ΅λ‹ˆλ‹€. 같은 였λ₯˜μž…λ‹ˆλ‹€.

둜컬 컴퓨터에 μ΅œμ‹  λ²„μ „μ˜ 원사( >v0.16 )κ°€ μ„€μΉ˜λ˜μ–΄ μžˆλ”λΌλ„ λ‹€λ₯Έ μ‚¬λžŒμ΄ μ—¬μ „νžˆ 개인 νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•˜λŠ” 데 λ¬Έμ œκ°€ μžˆλŠ” 경우λ₯Ό λŒ€λΉ„ν•˜μ—¬ 여기에 넣을 것이라고 μƒκ°ν–ˆμŠ΅λ‹ˆλ‹€. λ‹€μŒκ³Ό 같은 404 였λ₯˜κ°€ ν‘œμ‹œλ  수 μžˆμŠ΅λ‹ˆλ‹€.

error An unexpected error occurred: "https://registry.yarnpkg.com/@{ORG}/{PACKAGE}/-/{PACKAGE}-1.0.0.tgz: Request failed \"404 Not Found\"".
info If you think this is a bug, please open a bug report with the information provided in "/Users/{USER}/{project}/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

이것은 λ‚˜λ₯Ό μœ„ν•΄ μΌν–ˆμŠ΅λ‹ˆλ‹€. λ„μ›€μ΄λ˜κΈ°λ₯Ό λ°”λžλ‹ˆλ‹€.

npm logout
yarn logout

rm -rf ~/.npmrc
rm -rf ~/.yarnrc

npm login
yarn login

였늘 yarn add μ‚¬μš©ν•˜μ—¬ 개인 νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•  수 μžˆμŠ΅λ‹ˆκΉŒ? μ•„λ‹ˆλ©΄ λ‹€λ₯Έ 일을 ν•΄μ•Ό ν•˜λ‚˜μš”?

v0.22.0-20170228.1421이 μ„€μΉ˜λœ Windows 10μ—μ„œ @vitalbone의 단계λ₯Ό μ‹œλ„ν–ˆμŠ΅λ‹ˆλ‹€. μ—¬μ „νžˆ 였λ₯˜κ°€ λ°œμƒν–ˆμœΌλ©° μž‘λ™ν•˜λ €λ©΄ .npmrcμ—μ„œ 인증 라인 을

λ‘œκ·Έμ•„μ›ƒν•˜κ³  λ‘œκ·ΈμΈν•˜λŠ” 것은 기쑴의 λͺ¨λ“  토큰을 λ¬΄νš¨ν™”ν•˜κΈ° λ•Œλ¬Έμ— ν™•μ‹€νžˆ 우리λ₯Ό μœ„ν•œ μ˜΅μ…˜μ΄ μ•„λ‹™λ‹ˆλ‹€.

@StephanBijzitter λ‘œκ·Έμ•„μ›ƒν•˜κ±°λ‚˜ λ‹€μ‹œ λ‘œκ·ΈμΈν•  ν•„μš”κ°€ μ—†λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. *rc νŒŒμΌμ„ μ œκ±°ν•˜λ©΄ λ‘œκ·ΈμΈν•˜λŠ” λ™μ•ˆ 이전 토큰을 λ¬΄νš¨ν™”ν•˜μ§€ μ•Šκ³  μƒˆ 토큰을 얻을 수 μžˆμŠ΅λ‹ˆλ‹€. 그것이 당신을 μœ„ν•΄ μž‘λ™ν•˜λŠ”μ§€ ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

예, .npmrc νŒŒμΌμ„ 생성(λ˜λŠ” μ›ν•˜λŠ” λŒ€λ‘œ μ €μž₯)ν•˜λŠ” 것이 Yarnκ³Ό ν•¨κ»˜ λ²”μœ„κ°€ μ§€μ •λœ λΉ„κ³΅κ°œ νŒ¨ν‚€μ§€μ—μ„œ μž‘λ™ν•¨μ„ ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€.

<strong i="5">@myprivaterepo</strong>:registry=https://npm.myprivaterepo/
//npm.myprivaterepo/:_authToken=$NPM_TOKEN

이 개인 νŒ¨ν‚€μ§€μ— μ•‘μ„ΈμŠ€ν•  λ•Œ κΈˆμ§€λœ 였λ₯˜κ°€ λ°œμƒν•˜λ―€λ‘œ .npmrcλ₯Ό μ„ νƒν•˜μ§€ μ•ŠλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” μ˜€λž«λ™μ•ˆ 이 문제둜 고심해 μ™”λ‹€. μš°λ¦¬λŠ” λ‚΄λΆ€μ μœΌλ‘œ Sonatype을 μ‚¬μš©ν•˜μ—¬ 자체 개인 NPM 리포지토리λ₯Ό ν˜ΈμŠ€νŒ…ν–ˆμ§€λ§Œ Yarn으둜 μ„€μΉ˜ν•  수 μ—†μ—ˆμ§€λ§Œ NPM은 잘 μž‘λ™ν–ˆμŠ΅λ‹ˆλ‹€.

always-auth=true (https://github.com/craftship/codebox-npm/issues/ 30) .npmrc 파일의 μ˜΅μ…˜.

ν˜ΈμŠ€νŒ…λœ λ ˆμ§€μŠ€νŠΈλ¦¬λ₯Ό 얻을 수 μžˆμ§€λ§Œ ν”„λ‘œμ νŠΈ μžμ²΄λŠ” μ™„μ „νžˆ μ˜€ν”ˆ μ†ŒμŠ€μ΄λ―€λ‘œ νŒ€μ—μ„œ GitHubλ₯Ό μ‚¬μš©ν•˜κ³ (인증에 μ‚¬μš©ν•˜λ―€λ‘œ) AWSλ₯Ό μ‚¬μš©ν•˜λŠ” 경우 μ„œλ²„λ¦¬μŠ€ ν”„λ ˆμž„μ›Œν¬λ₯Ό μ‚¬μš©ν•˜μ—¬ 맀우 μ‰½κ²Œ 배포할 수 μžˆμŠ΅λ‹ˆλ‹€.

κ·Έλƒ₯ κ³΅μœ ν•  μƒκ°μž…λ‹ˆλ‹€.

저도 Sinopia와 같은 문제λ₯Ό κ²ͺκ³  μžˆμŠ΅λ‹ˆλ‹€. λˆ„κ΅¬λ“ μ§€ 이것에 λŒ€ν•œ 해결책을 μ°Ύμ•˜μŠ΅λ‹ˆκΉŒ?

~/.npmrc .npmrc κ°€ μžˆλŠ” λͺ¨λ“  ν™˜κ²½μ—μ„œλŠ” μ œλŒ€λ‘œ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ‚΄ 둜컬 μ»΄ν“¨ν„°μ—μ„œλŠ” μ œλŒ€λ‘œ μž‘λ™ν•˜μ§€λ§Œ Dockerμ—μ„œ μ‹€ν–‰ν•  λ•Œ cwd κ°€ ~ 이 아닐 λ•Œ ~/.npmrc κ°€ ν‘œμ‹œλ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. yarn config list λͺ…λ Ήμ–΄λ‘œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

λ‚΄ 둜컬 μ»΄ν“¨ν„°μ—μ„œ λ‹€μŒμ„ 좜λ ₯ν•©λ‹ˆλ‹€.

yarn config v0.23.2
info yarn config
{ 'version-tag-prefix': 'v',
  'version-git-tag': true,
  'version-git-sign': false,
  'version-git-message': 'v%s',
  'init-version': '1.0.0',
  'init-license': 'MIT',
  'save-prefix': '^',
  'ignore-scripts': false,
  'ignore-optional': false,
  registry: 'https://registry.yarnpkg.com',
  'strict-ssl': true,
  'user-agent': 'yarn/0.23.2 npm/? node/v7.9.0 darwin x64',
  lastUpdateCheck: 1492804696073 }
info npm config
{ '//npm.example.com/:_authToken': 'XXXXX-YYYYYY-ZZZZZ',
  '<strong i="11">@example</strong>:registry': 'https://npm.example.com/' }
✨  Done in 0.05s.

Docker λ‚΄λΆ€μ—μ„œ λ‹€μŒμ„ 좜λ ₯ν•©λ‹ˆλ‹€.

root<strong i="15">@a1c3c4fb1fb8</strong>:/app# yarn config list
yarn config v0.23.2
info yarn config
{ 'version-tag-prefix': 'v',
  'version-git-tag': true,
  'version-git-sign': false,
  'version-git-message': 'v%s',
  'init-version': '1.0.0',
  'init-license': 'MIT',
  'save-prefix': '^',
  'ignore-scripts': false,
  'ignore-optional': false,
  registry: 'https://registry.yarnpkg.com',
  'strict-ssl': true,
  'user-agent': 'yarn/0.23.2 npm/? node/v7.9.0 linux x64',
  lastUpdateCheck: 1492856034840,
  version: '0.23.2' }
info npm config
{ version: '0.23.2',
  loglevel: 'info' }
Done in 0.03s.

λ”°λΌμ„œ npm config μ˜¬λ°”λ₯΄κ²Œ μ‹€ν–‰ν•˜μ§€ μ•ŠλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

이에 λŒ€ν•œ μž„μ‹œ ν•΄κ²° λ°©λ²•μœΌλ‘œ Dockerμ—μ„œ ~/.npmrc λ₯Ό /app/.npmrc λ³΅μ‚¬ν•©λ‹ˆλ‹€.

https://github.com/uber/react-map-gl μ—μ„œ 찾을 수 μžˆμŠ΅λ‹ˆλ‹€.

yarn start v0.23.2
$ (cd examples/custom-interactions && (path-exists node_modules || yarn) && yarn run start-local)
sh: path-exists: command not found
yarn install v0.23.2
[1/4] πŸ”  Resolving packages...
[2/4] 🚚  Fetching packages...
error An unexpected error occurred: "https://unpm.uberinternal.com/flow-remove-types/-/flow-remove-types-1.1.2.tgz: Request failed \"401 Unauthorized\"".
info If you think this is a bug, please open a bug report with the information provided in "/react-map-gl/examples/custom-interactions/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
error Command failed with exit code 1.

검도 각도 ꡬ성 μš”μ†Œμ—λ„ λ™μΌν•œ λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€.

C:\WorkingFolder\Projects\NG4\wck-management>yarn
원사 μ„€μΉ˜ v0.23.4
정보 잠금 νŒŒμΌμ„ 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
[1/4] νŒ¨ν‚€μ§€ ν•΄κ²° 쀑...
[2/4] νŒ¨ν‚€μ§€λ₯Ό κ°€μ Έμ˜€λŠ” 쀑...
κ²½κ³  λ„€νŠΈμ›Œν¬ 연결에 λ¬Έμ œκ°€ μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ 쀑...
κ²½κ³  λ„€νŠΈμ›Œν¬ 연결에 λ¬Έμ œκ°€ μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ 쀑...
κ²½κ³  λ„€νŠΈμ›Œν¬ 연결에 λ¬Έμ œκ°€ μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ 쀑...
였λ₯˜ 예기치 μ•Šμ€ 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€: " http://registry.npm.telerik.com/@progress%2
fkendo-angular-buttons/-/kendo-angular-buttons-1.0.0.tgz: μš”μ²­ μ‹€νŒ¨ \"503 S
μ„œλΉ„μŠ€λ₯Ό μ‚¬μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€\"".
정보 이것이 버그라고 μƒκ°λ˜λ©΄ 정보 pκ°€ ν¬ν•¨λœ 버그 λ³΄κ³ μ„œλ₯Ό μ—¬μ‹­μ‹œμ˜€.
"C:\WorkingFolder\Projects\NG4\wck-management\yarn-error.log"에 μ œκ³΅λ©λ‹ˆλ‹€.
info 이에 λŒ€ν•œ λ¬Έμ„œλ₯Ό 보렀면 https://yarnpkg.com/en/docs/cli/install 을 λ°©λ¬Έ
λͺ…λ Ή.

μ§€κΈˆ μˆ˜μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.
μž‘λ™ν•˜μ§€ μ•ŠλŠ” μ‚¬μš©μž μ •μ˜ μ˜ˆμ œκ°€ μžˆλŠ” 경우 μƒˆ 문제λ₯Ό μ—¬μ‹­μ‹œμ˜€.
이 경우 μž¬ν˜„ν•  단계λ₯Ό μ œκ³΅ν•˜λŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€.

멋진 @bestander! μž‘λ™ν•  κ²ƒμœΌλ‘œ μ˜ˆμƒλ˜λŠ” μ΅œμ†Œ 원사 버전은 λ¬΄μ—‡μž…λ‹ˆκΉŒ?

μ—¬λŸ¬ 버전에 걸쳐 μˆ˜μ • 사항이 μžˆμŠ΅λ‹ˆλ‹€.
0.26은 λͺ¨λ‘ 가지고 μžˆμ–΄μ•Όν•©λ‹ˆλ‹€

2017λ…„ 5μ›” 23일 ν™”μš”μΌ 19:44 Alexander Kachkaev μ•Œλ¦Ό @github.com
썼닀:

멋진 @bestander https://github.com/bestander ! μ΅œμ†Œ μ–Όλ§ˆμ•Ό
μž‘λ™ν•  κ²ƒμœΌλ‘œ μ˜ˆμƒλ˜λŠ” 원사 버전?

β€”
당신이 μ–ΈκΈ‰λ˜μ—ˆκΈ° λ•Œλ¬Έμ— 이것을 λ°›λŠ” κ²ƒμž…λ‹ˆλ‹€.

이 이메일에 직접 λ‹΅μž₯ν•˜κ³  GitHubμ—μ„œ 확인
https://github.com/yarnpkg/yarn/issues/521#issuecomment-303492335 λ˜λŠ” μŒμ†Œκ±°
μŠ€λ ˆλ“œ
https://github.com/notifications/unsubscribe-auth/ACBdWC90PKrW5LAg7HyY3l7c8ZoKaWtyks5r8yb9gaJpZM4KPd0N
.

.npmrc 에 λ²”μœ„μ™€ λ ˆμ§€μŠ€νŠΈλ¦¬κ°€ μ •μ˜λœ λΉ„κ³΅κ°œ λ²”μœ„ νŒ¨ν‚€μ§€κ°€ Yarn 0.24.6μ—μ„œ μž‘λ™ν•˜κΈ° μ‹œμž‘ν–ˆμŒμ„ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€(Yarn 0.24.5μ—μ„œλŠ” μž‘λ™ν•˜μ§€ μ•ŠμŒ). κ°μ‚¬ν•©λ‹ˆλ‹€!

원사 μ„€μΉ˜
원사 μ„€μΉ˜ v0.24.6
정보 잠금 νŒŒμΌμ„ 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
[1/4] νŒ¨ν‚€μ§€ ν•΄κ²° 쀑...
κ²½κ³  cldr-data > cldr-data-downloader > [email protected]: 이 νŒ¨ν‚€μ§€λŠ” npm에 λ‹€μ‹œ ν†΅ν•©λ˜μ—ˆμœΌλ©° ν˜„μž¬ npmκ³Ό κ΄€λ ¨ν•˜μ—¬ μ΅œμ‹  버전이 μ•„λ‹™λ‹ˆλ‹€.
κ²½κ³  cldr-data > cldr-data-downloader > μš”μ²­ > [email protected] : λŒ€μ‹  uuid λͺ¨λ“ˆ μ‚¬μš©
[2/4] νŒ¨ν‚€μ§€λ₯Ό κ°€μ Έμ˜€λŠ” 쀑...
κ²½κ³  λ„€νŠΈμ›Œν¬ 연결에 λ¬Έμ œκ°€ μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ 쀑...
κ²½κ³  λ„€νŠΈμ›Œν¬ 연결에 λ¬Έμ œκ°€ μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ 쀑...
κ²½κ³  λ„€νŠΈμ›Œν¬ 연결에 λ¬Έμ œκ°€ μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ 쀑...
κ²½κ³  λ„€νŠΈμ›Œν¬ 연결에 λ¬Έμ œκ°€ μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ 쀑...
κ²½κ³  λ„€νŠΈμ›Œν¬ 연결에 λ¬Έμ œκ°€ μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ 쀑...
κ²½κ³  λ„€νŠΈμ›Œν¬ 연결에 λ¬Έμ œκ°€ μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ 쀑...
κ²½κ³  λ„€νŠΈμ›Œν¬ 연결에 λ¬Έμ œκ°€ μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ 쀑...
κ²½κ³  λ„€νŠΈμ›Œν¬ 연결에 λ¬Έμ œκ°€ μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ 쀑...
였λ₯˜ 예기치 μ•Šμ€ 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€: " http://registry.npm.telerik.com/@progress%2fkendo-angular-inputs/ -/kendo-angular-inputs-1.0.3.tgz: ESOCKETTIMEDOUT".
정보 이것이 버그라고 μƒκ°λ˜λ©΄ "[...]\yarn-error.log"에 제곡된 μ •λ³΄λ‘œ 버그 λ³΄κ³ μ„œλ₯Ό μ—¬μ‹­μ‹œμ˜€.
info 이 λͺ…령에 λŒ€ν•œ μ„€λͺ…μ„œλ₯Ό 보렀면 https://yarnpkg.com/en/docs/cli/install 을 λ°©λ¬Έ

원사 μ„€μΉ˜ v0.24.6
정보 잠금 νŒŒμΌμ„ 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
[1/4] νŒ¨ν‚€μ§€ ν•΄κ²° 쀑...
[2/4] νŒ¨ν‚€μ§€λ₯Ό κ°€μ Έμ˜€λŠ” 쀑...
였λ₯˜ 예기치 μ•Šμ€ 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€: " http://registry.npm.telerik.com/@progress%2fkendo-angular-l10n/ -/kendo-angular-l10n-1.0.0.tgz: ETIMEDOUT 23.253.4.114:80 μ—°κ²°" .
정보 이것이 버그라고 μƒκ°λ˜λ©΄ 정보 pκ°€ ν¬ν•¨λœ 버그 λ³΄κ³ μ„œλ₯Ό μ—¬μ‹­μ‹œμ˜€.
"....\yarn-error.log"에 μ œκ³΅λ©λ‹ˆλ‹€.
info 이에 λŒ€ν•œ λ¬Έμ„œλ₯Ό 보렀면 https://yarnpkg.com/en/docs/cli/install 을 λ°©λ¬Έ
λͺ…λ Ή.

telerik.com에 μ—°κ²°ν•  수 μ—†λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. http ν”„λ‘μ‹œκ°€ κ΅¬μ„±λ˜μ–΄ μžˆμŠ΅λ‹ˆκΉŒ?

λ¬Έμ œλŠ” strict-ssl을 μ‚¬μš©ν•˜μ—¬ 원사λ₯Ό true둜 κ΅¬μ„±ν–ˆμ„ λ•Œ http://registry.npm.telerik.com μ—μ„œ 원사가 κ²€μƒ‰λœλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.

정보 원사 ꡬ성
{ '버전 νƒœκ·Έ 접두사': 'v',
'버전 μžμ‹ νƒœκ·Έ': μ°Έ,
'버전-git-sign': 거짓,
'버전-git-message': 'v%s',
'μ΄ˆκΈ°ν™” 버전': '1.0.0',
'초기 λΌμ΄μ„ μŠ€': 'MIT',
'접두사 μ €μž₯': '^',
'슀크립트 λ¬΄μ‹œ': false,
'λ¬΄μ‹œ μ˜΅μ…˜': false,
λ ˆμ§€μŠ€νŠΈλ¦¬: ' https://registry.yarnpkg.com ',
'strict-ssl': 사싀,
'μ‚¬μš©μž μ—μ΄μ „νŠΈ': 'yarn/0.24.6 npm/? λ…Έλ“œ/v6.9.5 win32 x64',
lastUpdateCheck: 1496137030541 }
정보 npm ꡬ성
{ 'strict-ssl': 사싀,
'@ 진행: λ ˆμ§€μŠ€νŠΈλ¦¬ ': ' https://registry.npm.telerik.com/ ',
'//registry.npm.telerik.com/:_authToken': '......' }
0.04초 μ•ˆμ— μ™„λ£Œλ©λ‹ˆλ‹€.

이전에 npm으둜 λ‘œκ·ΈμΈμ„ κ΅¬μ„±ν–ˆμŠ΅λ‹ˆλ‹€. "npm login --registry= https://registry.npm.telerik.com/ --scope=@progress "

μ›μ‚¬λŠ” "https"(https://registry.npm.telerik.com)둜 검색해야 ν•©λ‹ˆλ‹€ :-)

λ¬Έμ œκ°€ 뭔지 μ•„μ„Έμš”?

개인 λ ˆμ§€μŠ€νŠΈλ¦¬λ₯Ό μ‚¬μš©ν•œ κ²½ν—˜μ΄ λ§Žμ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
λˆ„κ΅°κ°€ λ‚˜λ₯Ό μœ„ν•΄ 계정과 ν”„λ‘œμ νŠΈ package.json/yarn.lock을 μ„€μ •ν•˜λ©΄
λ‚΄κ°€ λ„μšΈ 수 μžˆλŠ”μ§€ ν…ŒμŠ€νŠΈν•˜κΈ° μœ„ν•΄.

2017λ…„ 5μ›” 30일 10μ‹œ 53뢄에 beatrizaldaz [email protected]μ—μ„œ λ‹€μŒκ³Ό 같이 μΌμŠ΅λ‹ˆλ‹€.

λ¬Έμ œλŠ” 원사가 http://registry.npm.telerik.com μ—μ„œ κ²€μƒ‰λ˜κ³  μžˆλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.
strict-ssl을 μ‚¬μš©ν•˜μ—¬ 원사λ₯Ό true둜 κ΅¬μ„±ν•œ 경우:

정보 원사 ꡬ성
{ '버전 νƒœκ·Έ 접두사': 'v',
'버전 μžμ‹ νƒœκ·Έ': μ°Έ,
'버전-git-sign': 거짓,
'버전-git-message': 'v%s',
'μ΄ˆκΈ°ν™” 버전': '1.0.0',
'초기 λΌμ΄μ„ μŠ€': 'MIT',
'접두사 μ €μž₯': '^',
'슀크립트 λ¬΄μ‹œ': false,
'λ¬΄μ‹œ μ˜΅μ…˜': false,
λ ˆμ§€μŠ€νŠΈλ¦¬: ' https://registry.yarnpkg.com ',
'strict-ssl': 사싀,
'μ‚¬μš©μž μ—μ΄μ „νŠΈ': 'yarn/0.24.6 npm/? λ…Έλ“œ/v6.9.5 win32 x64',
lastUpdateCheck: 1496137030541 }
정보 npm ꡬ성
{ 'strict-ssl': 사싀,
' @progress https://github.com/progress :registry': '
https://registry.npm.telerik.com/ ',
'//registry.npm.telerik.com/:_authToken': '......' }
0.04초 μ•ˆμ— μ™„λ£Œλ©λ‹ˆλ‹€.

이전에 npm으둜 λ‘œκ·ΈμΈμ„ κ΅¬μ„±ν–ˆμŠ΅λ‹ˆλ‹€. "npm login --registry=
https://registry.npm.telerik.com/ --scope=@progress
https://github.com/progress "

"https"(
https://registry.npm.telerik.com) :-)

λ¬Έμ œκ°€ 뭔지 μ•„μ„Έμš”?

β€”
당신이 μ–ΈκΈ‰λ˜μ—ˆκΈ° λ•Œλ¬Έμ— 이것을 λ°›λŠ” κ²ƒμž…λ‹ˆλ‹€.
이 이메일에 직접 λ‹΅μž₯ν•˜κ³  GitHubμ—μ„œ 확인
https://github.com/yarnpkg/yarn/issues/521#issuecomment-304830178 λ˜λŠ” μŒμ†Œκ±°
μŠ€λ ˆλ“œ
https://github.com/notifications/unsubscribe-auth/ACBdWA3GrsEnpn64ppJRL2cvJ-ayhvh5ks5r--cFgaJpZM4KPd0N
.

μ•Œκ² μŠ΅λ‹ˆλ‹€. 문제λ₯Ό ν…ŒμŠ€νŠΈν•˜κΈ° μœ„ν•΄ telerik ν‰κ°€νŒ κ³„μ •μœΌλ‘œ ν”„λ‘œμ νŠΈλ₯Ό λ§Œλ“€κ³  githubμ—μ„œ ν”„λ‘œμ νŠΈ 링크λ₯Ό λ³΄λ‚΄λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€.

λŒ€λ‹¨ν•˜κ΅°μš”, @beatrizaldaz.
κ·Έ κ²½μš°μ—λ§Œ μƒˆ 문제λ₯Ό μ—΄ β€‹β€‹μˆ˜ μžˆμŠ΅λ‹ˆκΉŒ?
λΆ„λ¦¬ν•˜μ—¬ μΆ”μ ν•˜λŠ” 것이 더 μ‰¬μšΈ κ²ƒμž…λ‹ˆλ‹€.

@beatrizaldaz κ²Œμ‹œλ¬Ό 정보 / Telerik. 같은 λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€. μ„ΈλΆ€μ μœΌλ‘œ λ‚˜λŠ” λͺ‡ 가지 μ‹œλ„λ₯Ό ν–ˆλ‹€
λ‹€μŒ ꡬ성(.npmrc)을 μ‚¬μš©ν•©λ‹ˆλ‹€. 거의 μž‘λ™ν•˜λŠ” 것 κ°™μ§€λ§Œ https λŒ€μ‹  http둜 μ—°κ²°λ©λ‹ˆλ‹€.
κ·Έλž˜μ„œ κ±°λΆ€λ©λ‹ˆλ‹€. 이에 λŒ€ν•œ μž„μ‹œ ν•΄κ²° 방법이 μžˆμŠ΅λ‹ˆκΉŒ(엄격 λͺ¨λ“œλŠ” μž‘λ™ν•˜μ§€ μ•ŠμŒ)?

<strong i="9">@progress</strong>:registry=https://registry.npm.telerik.com/
//registry.npm.telerik.com/:_authToken="YOUR_SECRET_HERE"
always-auth=true
registry="https://registry.npmjs.com/"

κ·Έλž˜μ„œ λ‚˜λŠ” μ–΄μ œ 이것을 λ§Œλ‚¬μŠ΅λ‹ˆλ‹€( yarn λŠ” 0.24.6에 μžˆμ—ˆμŠ΅λ‹ˆλ‹€). ν•œλ™μ•ˆ 잘 μž‘λ™ν–ˆκΈ° λ•Œλ¬Έμ— μ •ν™•νžˆ 원인이 무엇인지 λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€. λ‚΄ μ†”λ£¨μ…˜μ€ λͺ¨λ‘ μ œκ±°ν•˜λŠ” 것이 μ—ˆμŠ΅λ‹ˆλ‹€ .npm 폴더와 .npmrc μ‹€ν–‰, λͺ¨λ‘ νŒŒμΌμ„ yarn cache clean λ‹€μ‹œ λ‘œκ·ΈμΈμ„ npm login 을 ν•œ ν›„ 잘 μž‘λ™μ— λ‚˜νƒ€λ‚œ 것. λ‚˜λŠ” μ΅œκ·Όμ— nvm λ₯Ό 톡해 node와 npm의 버전 사이λ₯Ό λ›°μ–΄λ‹€λ…”μŠ΅λ‹ˆλ‹€. 범인은? λ˜ν•œ 문제 ν•΄κ²° 쀑 μ–΄λŠ μ‹œμ μ—μ„œ --ignore-dependencies ν”Œλž˜κ·Έλ₯Ό μ‚¬μš©ν•˜μ—¬ brew μ‚¬μš©ν•˜μ—¬ yarn λ₯Ό μ œκ±°ν–ˆλ‹€κ°€ λ‹€μ‹œ μ„€μΉ˜ν–ˆμ§€λ§Œ κ·Έ μžμ²΄λ‘œλŠ” λ¬Έμ œκ°€ ν•΄κ²°λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

관련이 μžˆλŠ” 경우 이 단계λ₯Ό μ§„ν–‰ν•˜λŠ” λ™μ•ˆ yarn login μ‹œλ„ν•˜λ©΄ μ–΄λ–€ 이유둜 μ•”ν˜Έ ν”„λ‘¬ν”„νŠΈκ°€ 쀑단될 수 μžˆμŠ΅λ‹ˆλ‹€. 이것이 μ œκ°€ npm login μ΄μœ μž…λ‹ˆλ‹€.

μ•ˆλ…•ν•˜μ„Έμš”,
λͺ‡ 달이 μ§€λ‚¬μŠ΅λ‹ˆλ‹€. μ†Œμ‹μ΄ μžˆμŠ΅λ‹ˆκΉŒ?

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰