Yarn: μ—°κ²°λœ νŒ¨ν‚€μ§€λ₯Ό ν‘œμ‹œν•˜λŠ” λͺ…λ Ή μΆ”κ°€

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

ν˜„μž¬ ν”„λ‘œμ νŠΈμ— ν˜„μž¬ 링크된 νŒ¨ν‚€μ§€( yarn link [package] )λ₯Ό ν‘œμ‹œν•˜λŠ” λͺ…령이 있으면 μœ μš©ν•  것이라고 μƒκ°ν•©λ‹ˆλ‹€.

cat-feature

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

global 와 λΉ„μŠ·ν•œ 것은 μ–΄λ–»μŠ΅λ‹ˆκΉŒ?

Usage: yarn link [add|ls|remove] [flags]

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

global 와 λΉ„μŠ·ν•œ 것은 μ–΄λ–»μŠ΅λ‹ˆκΉŒ?

Usage: yarn link [add|ls|remove] [flags]

원사 링크 [μΆ”κ°€|ls|제거] [ν”Œλž˜κ·Έ]

예, 맀우 λͺ…ν™•ν•˜κ³  쒋을 것이라고 μƒκ°ν•©λ‹ˆλ‹€.

이에 λŒ€ν•œ μ›€μ§μž„μ΄λ‚˜ ν•΄κ²° 방법이 μžˆμŠ΅λ‹ˆκΉŒ?

이 ν•΄κ²° 방법을 μ°Ύμ•˜μŠ΅λ‹ˆλ‹€. ls -l node_modules | grep ^l

@tnrich 멋진 μ†”λ£¨μ…˜, λ„€μž„μŠ€νŽ˜μ΄μŠ€λ₯Ό μ§€μ›ν•˜λŠ” 더 일반적인 μ†”λ£¨μ…˜μ΄ μžˆμŠ΅λ‹ˆκΉŒ? 예: node_modules/@myCompany

@bingzyuan μ‹œλ„ν•΄ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€

( ls -l node_modules ; ls -l node_modules/@* ) | grep ^l

( 이 SO μ§ˆλ¬Έμ—μ„œ 볡사)

@jlegrone 확인, 잘 μž‘λ™ν•©λ‹ˆλ‹€. κ°μ‚¬ν•©λ‹ˆλ‹€.

이 κΈ°λŠ₯은 아직 κ³ λ € μ€‘μž…λ‹ˆκΉŒ? @고양이

+1. μ§€κΈˆμœΌλ‘œμ„œλŠ” 독립 μ‹€ν–‰ν˜• 슀크립트λ₯Ό μ‚¬μš©ν•˜κ³  μžˆμ§€λ§Œ 이것을 λ‚΄μž₯ν˜•μœΌλ‘œ μ‚¬μš©ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

find node_modules node_modules/\@* -depth 1 -type l -print | while read MODULE ; do
    echo "Linked module in use: $MODULE"
done

이것은 μœˆλ„μš°μ—μ„œ 특히 도움이 λ©λ‹ˆλ‹€. κ·Έ ν”Œλž«νΌμ—μ„œ 심볼릭 링크λ₯Ό 디버깅할 λ•Œ μ—°κ²°λ˜μ–΄ μžˆλ‹€κ³  μƒκ°ν•˜λŠ” 것을 yarn이 말해주기λ₯Ό μ •λ§λ‘œ μ›ν•˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.

이게 μ‘΄μž¬ν•˜λŠ”μ§€ κ²€μƒ‰ν•΄λ³΄λ‹ˆ..

여기에 μžˆλŠ” 주석이 (적어도 λ‚˜μ—κ²Œ) ν•΄κ²° 방법을 μ œκ³΅ν•˜λŠ” κ²½μš°λ³΄λ‹€ 더 μ€‘μš”ν•œ 것은 μ–΄λ–€ 원사 링크가 _μ‚¬μš© κ°€λŠ₯ν•œ_인지 μ•„λŠ” κΈ°λŠ₯μž…λ‹ˆλ‹€. 즉, yarn link λ₯Ό μ‹€ν–‰ν•œ λ””λ ‰ν† λ¦¬λŠ” 무엇이며 νŒ¨ν‚€μ§€ 이름과 ν•΄λ‹Ή νŒ¨ν‚€μ§€λ₯Ό ν¬ν•¨ν•˜λŠ” 디렉토리 μ‚¬μ΄μ—λŠ” 연관이 μžˆμŠ΅λ‹ˆλ‹€.

~/.yarn-config/link 디렉토리에 κ΄€λ ¨ 정보가 ν¬ν•¨λ˜μ–΄ μžˆλ‹€κ³  생각할 수 μžˆμ§€λ§Œ λΉ„μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

@MikeTaylor 당신이 μ°Ύκ³  μžˆλŠ” ~/.config/yarn/link

λ‚˜λŠ” ~μ˜€λ‹€_! 정말 κ³ λ§™μŠ΅λ‹ˆλ‹€!

(μ΄λ ‡κ²Œ ν•˜λ©΄ ν™ˆ 디렉토리에 .yarn , .yarn-cache , .yarn-config , .yarnrc _and_ .config/yarn μžˆλŠ” μ΄μœ κ°€ μ•½κ°„ κΆκΈˆν•΄μ§€μ§€λ§Œ ν†΅κ³Όμ‹œν‚€μ‹­μ‹œμ˜€.)

ν•΄λ‹Ή ꡬ성을 찾을 수 μ—†μŒ

PS C:\Users\me> ls ~/.config


    Directory: C:\Users\me\.config


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       2018-03-29   5:59 PM                configstore

PS C:\Users\me> ls ~/.yarn-config
ls : Cannot find path 'C:\Users\me\.yarn-config' because it does not exist.

λ‚΄κ°€ 찾은 μœ μΌν•œ νŒŒμΌμ€ ~/.yarnrcμž…λ‹ˆλ‹€.

@retog Windowsλ₯Ό μ‚¬μš©ν•˜λŠ” 경우 μ°Ύκ³  μžˆλŠ” 디렉토리가 C:\Users\<userName>\AppData\Local\Yarn\config\link .

κ°μ‚¬ν•©λ‹ˆλ‹€ @TomGault , 링크가 μžˆμŠ΅λ‹ˆλ‹€.

희망은 κΈ€λ‘œλ²Œ 및 λ‘œμ»¬μ— λŒ€ν•œμ΄ 둀을 κ°€μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.

이것은 ꡐ차 리포지토리 톡합 μž‘μ—…μ„ ν•  λ•Œ 디버깅에 큰 도움이 될 κ²ƒμž…λ‹ˆλ‹€!
(ν˜„μž¬ λ‚΄κ°€ μ²˜ν•œ 상황)

λͺ¨λ“  링크λ₯Ό 보렀면 yarn link ls 와 같은 λͺ…령을 μ‚¬μš©ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. 특히 링크가 μƒμ„±λœ μœ„μΉ˜λ₯Ό κΈ°μ–΅ν•˜μ§€ λͺ»ν•˜λŠ” 경우 μ œκ±°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

κ·Έλ™μ•ˆ macOS/Linux의 경우 λ‹€μŒμ΄ μž‘λ™ν•΄μ•Ό ν•©λ‹ˆλ‹€.

ls -la ~/.config/yarn/link/

λ‚˜λŠ” 이것을 μœ„ν•΄ 어리석은 방법을 λ§Œλ“€κ³  ν˜„μž¬ ν”„λ‘œμ νŠΈ 링크 λͺ©λ‘μ„ ν‘œμ‹œ ν•  수 μžˆμŠ΅λ‹ˆλ‹€

https://www.npmjs.com/package/yarn-list-link

$ npx yarn-list-link
@node-novel\pattern-split
cjk-conv
lazy-cacache
regexp-cjk
uni-string

Windows 10을 μ‹€ν–‰ν•˜λŠ” λ‚΄ PCμ—μ„œ 원사 λ§ν¬λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.
~\AppData\Local\Yarn\Data\link\

μ–΄λ–€ μ—…λ°μ΄νŠΈ?

find node_modules -type l | grep -v .bin 및 find ~/.config/yarn/link -type l λŠ” 각각 μ—°κ²°λœ λͺ¨λ“ˆκ³Ό μ—°κ²° κ°€λŠ₯ν•œ λͺ¨λ“ˆμ„ μ°ΎλŠ” 데 μœ μš©ν•©λ‹ˆλ‹€.

@hubgit κ²Œμ‹œλ¬Όμ„ λ³΄μ™„ν•˜κΈ° μœ„ν•΄ PowerShell을 μ‚¬μš©ν•˜λŠ” Windowsμ—μ„œ λ‹€μŒμ΄ μˆ˜ν–‰λ  것이라고 μƒκ°ν•©λ‹ˆλ‹€.
Get-ChildItem '.\node_modules\.bin\' | Where-Object {$_.LinkType -eq 'SymbolicLink'}

이것은 μ œκ³΅λœλ‹€λ©΄ 맀우 도움이 될 κ²ƒμž…λ‹ˆλ‹€. μ–΄λ–€ 진전이 μžˆμŠ΅λ‹ˆκΉŒ?

+1

+1

λ˜λŠ” #710을 κ΅¬ν˜„ν•˜μ‹­μ‹œμ˜€.

yarn link μ‹€ν–‰ 쀑이고 λ™μΌν•œ μ΄λ¦„μœΌλ‘œ 이미 λ“±λ‘λœ νŒ¨ν‚€μ§€κ°€ μžˆλŠ” 경우, yarn이 이미 μ—°κ²°λœ νŒ¨ν‚€μ§€μ˜ 경둜λ₯Ό 인쇄할 수 μ—†λŠ” μ΄μœ λŠ” λ¬΄μ—‡μž…λ‹ˆκΉŒ? λ˜ν•œ λ‹€λ₯Έ νŒ¨ν‚€μ§€μ˜ 연결을 ν•΄μ œν•˜κ³  ν˜„μž¬ νŒ¨ν‚€μ§€λ₯Ό μ—°κ²°ν•˜λ©΄( -f ν”Œλž˜κ·Έλ‘œ) yarn이 더 λ˜‘λ˜‘ν•΄μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.

+1

+1

Windowsμ—μ„œ dir %LOCALAPPDATA%\yarn\data\link λŠ” μ‚¬μš©μž 이름 등을 μ•Œ ν•„μš” 없이 μž‘λ™ν•©λ‹ˆλ‹€.

+1

# yarn link list
yll () {
    current=$PWD
    for link in $(find $HOME/.config/yarn/link -type l)
    do
        cd $link"/../"$(readlink $link)
        echo $link $'\n==>' $PWD
    done
    cd $current
}

# yarn unlink [package]
yul () {
    current=$PWD
  link=$(find $HOME/.config/yarn/link -type l | grep $1$)
    cd $link"/../"$(readlink $link)
    yarn unlink
    cd $current
}

@torifat 이 ν˜Έκ°€ κ°œμ„€λ˜κ³  μƒˆλ‘œμš΄ κΈ°λŠ₯(고양이 κΈ°λŠ₯?)으둜 νƒœκ·Έκ°€ μ§€μ •λœ 지났고 κ·Έ μ΄ν›„λ‘œ 원사 νŒ€μœΌλ‘œλΆ€ν„° μ†Œμ‹μ„ 듣지 λͺ»ν–ˆμŠ΅λ‹ˆλ‹€. 이에 λŒ€ν•œ μ›€μ§μž„μ΄ μžˆμŠ΅λ‹ˆκΉŒ? :)

이것은 λ‚΄ ν”„λ‘œμ νŠΈμ—μ„œ μ—°κ²°λœ νŒ¨ν‚€μ§€λ₯Ό μ°ΎλŠ” 데 도움이 λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

ls -l node_modules | grep ^l

https://stackoverflow.com/questions/24933955/easy-way-to-list-node-modules-i-have-npm-linked

ls -l node_modules | grep ^l 의 λ¬Έμ œλŠ” μ—°κ²°λœ _scoped_ νŒ¨ν‚€μ§€( @types 와 같은 @ 디렉토리 μ•„λž˜μ˜ ν•˜μœ„ 디렉토리)λ₯Ό ν‘œμ‹œν•˜μ§€ μ•ŠλŠ”λ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.
λΉ λ₯Έ μˆ˜μ •μ€ ls λͺ…령에 μž¬κ·€ ν”Œλž˜κ·Έ R λ₯Ό μΆ”κ°€ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. 비ꡐ적 μž‘μ€ 쒅속성 λͺ©λ‘μ—μ„œ ν…ŒμŠ€νŠΈν–ˆκΈ° λ•Œλ¬Έμ— μ„±λŠ₯에 λŒ€ν•΄ 말할 수 μ—†μŠ΅λ‹ˆλ‹€.

ls -lR node_modules | grep ^l

ν”„λ‘œμ νŠΈμ—μ„œ ν˜„μž¬ μ—°κ²°λœ νŒ¨ν‚€μ§€λ₯Ό λ‚˜μ—΄ν•˜λ €λ©΄ λ‹€μŒμ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€.

νŽΈμ§‘: OSX와 ν˜Έν™˜λ˜μ§€ μ•ŠμŒ

yllc() {
  find -L node_modules -maxdepth 3 -type d -xtype l | xargs -I{} sh -c "echo {} '->' $(realpath {})"
}

κ²°κ³Ό:

node_modules/@somname/somepkg -> /home/user/repos/somename-somepkg

λ²”μœ„ νŒ¨ν‚€μ§€λ₯Ό ν¬ν•¨ν•˜μ—¬ μ—°κ²°ν•  수 μžˆλŠ” νŒ¨ν‚€μ§€λ₯Ό μ°ΎκΈ° μœ„ν•΄ μˆ˜ν–‰ν•˜λŠ” μž‘μ—…μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

yll () {
  linkDir=~/.config/yarn/link
  find $linkDir -maxdepth 2 -type l | xargs realpath -s --relative-to $linkDir
}

κ²°κ³Ό:

@somename/foo
@othername/bar
somepkg
otherpkg

그런 λ‹€μŒ fzf κ³Ό 같이 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

yarn link $(yll | fzf -m)

λ‚˜λŠ” 이것을 λ„ˆλ¬΄ 자주 μ‚¬μš©ν•˜μ—¬ bash λ³„μΉ­μœΌλ‘œ λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€.

alias yarn-linked="find . -type l | grep -v .bin | sed 's/^\.\/node_modules\///'"
alias yarn-unlink-all="yarn-linked | xargs yarn unlink && yarn install --check-files"

μš°λ¦¬κ°€ μ†”λ£¨μ…˜μ„ κ²Œμ‹œν•˜κ³  있고 그것듀은 λͺ¨λ‘ μ—¬κΈ°μ—μ„œ λ„ˆλ¬΄ λ³΅μž‘ν•΄ 보이기 λ•Œλ¬Έμ— μ œκ°€ μ—¬λŸ¬λΆ„ λͺ¨λ‘λ₯Ό λ„μ™€λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€.

alias yarn-linked="find node_modules -type l -maxdepth 3 | grep -v .bin | cut -f2 -d/"

μ‰¬μ›Œμš”.
νŽΈμ§‘: 비둝 @Bkucera μ†”λ£¨μ…˜μ΄ 정말 μ’‹μ•„
νŽΈμ§‘: λ‚΄ μ†”λ£¨μ…˜λ„ λ³΅μž‘ν•©λ‹ˆλ‹€! μ  μž₯, 트둀 μ‹€νŒ¨!
νŽΈμ§‘: @Bkucera , κ·€ν•˜μ˜ μ†”λ£¨μ…˜μ€ MacOS와 ν˜Έν™˜λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ :cry:

yarnμ΄λ‚˜ npm의 λˆ„κ΅°κ°€κ°€ 이것을 쑰사할 수 μžˆμŠ΅λ‹ˆκΉŒ? λΆ„λͺ…νžˆ 큰 μˆ˜μš”κ°€ μžˆμŠ΅λ‹ˆλ‹€. <3

+1

yll () {
  linkDir=~/.config/yarn/link
  find $linkDir -maxdepth 2 -type l | xargs realpath -s --relative-to $linkDir
}

이것은 맀λ ₯처럼 μž‘λ™ν–ˆμŠ΅λ‹ˆλ‹€. κ³΅μœ ν•΄ μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€!

λ‚˜λ₯Ό μœ„ν•΄ μΌν•œ μ†”λ£¨μ…˜μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

  • ~/.config/yarn/link ν΄λ”λ‘œ 이동
  • 연결을 ν•΄μ œν•˜λ €λŠ” λͺ¨λ“ˆμ„ μ‚­μ œν•˜μ‹­μ‹œμ˜€.

λ©”μ‹œμ§€μ— μ΄λŸ¬ν•œ 지침을 μΆ”κ°€ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

ν”„λ‘œμ νŠΈμ—μ„œ yarn 1.x λ₯Ό μ‚¬μš©ν•˜μ—¬ λͺ‡ 가지 별칭을 μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€.

$ alias | grep yarn
yarn-linked='find -L $(find node_modules -type l) -type d -prune'
yarn-links='(cd $HOME/.config/yarn/link && find . -type l | cut -c 3-)'

그것은 λ‚˜λ₯Ό μœ„ν•΄ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. ~/.config/yarn/link 폴더가 μ—†μŠ΅λ‹ˆλ‹€. λΉ„μ–΄ μžˆλŠ” μ „μ—­ ν΄λ”λ§Œ μžˆμŠ΅λ‹ˆλ‹€.
도움이 될 수 μžˆλ‹€λ©΄ Manjaro Linuxλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

이것은 μ—¬μ „νžˆ β€‹β€‹κ³ λ €λ©λ‹ˆκΉŒ?

이 κΈ°λŠ₯을 μΆ”κ°€ν•˜κ³  TypeScript ν”„λ‘œμ νŠΈμ— @types νŒ¨ν‚€μ§€λ₯Ό μžλ™μœΌλ‘œ μ„€μΉ˜ν•˜λŠ” Yarn 래퍼λ₯Ό λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€. https://github.com/iansu/blarn

이 κΈ°λŠ₯이 원사에 μΆ”κ°€λ˜λŠ” 데 μ΄μ˜κ°€ μ—†λŠ” κ²ƒμ²˜λŸΌ 듀리며 λˆ„κ΅°κ°€κ°€ μˆ˜ν–‰ν•΄μ•Ό ν•©λ‹ˆλ‹€. μš”κ΅¬ 사항:

  1. CURRENT ν”„λ‘œμ νŠΈμ— μ—°κ²°λœ νŒ¨ν‚€μ§€λ₯Ό λ‚˜μ—΄ν•˜λŠ” κΈ°λŠ₯. 즉, node_modules ν΄λ”μ—μ„œ μ™ΈλΆ€(둜컬) νŒ¨ν‚€μ§€μ— λŒ€ν•œ 심볼릭 링크λ₯Ό μž¬κ·€μ μœΌλ‘œ κ²€μ‚¬ν•©λ‹ˆλ‹€.

  2. CURRENT ν”„λ‘œμ νŠΈμ— μ—°κ²°λœ λͺ¨λ“  νŒ¨ν‚€μ§€μ˜ 연결을 ν•΄μ œν•˜λŠ” κΈ°λŠ₯.

  3. κΈ€λ‘œλ²Œ 링크 λ ˆμ§€μŠ€νŠΈλ¦¬ 디렉토리에 등둝 된 λͺ©λ‘ νŒ¨ν‚€μ§€ κΈ°λŠ₯ ( $HOME/.config/yarn/link * nixμ—μ„œ μŠ€ν¬λ¦½νŠΈμ— %LOCALAPPDATA%\yarn\data\link Windowsμ—μ„œ)

yarn link [add|ls|remove] (이전 μ œμ•ˆ 쀑 ν•˜λ‚˜)λŠ” 이전 버전과 μ™„μ „νžˆ ν˜Έν™˜λ˜μ§€ μ•ŠμœΌλ―€λ‘œ yarn link --list μ œμ•ˆν•©λ‹ˆλ‹€. 이 ν”Œλž˜κ·ΈλŠ” (1)κ³Ό (3)의 λͺ©λ‘μ„ 생성해야 ν•©λ‹ˆλ‹€.

λ˜ν•œ (2)λ₯Ό λ‹¬μ„±ν•˜κΈ° μœ„ν•œ λ°©λ²•μœΌλ‘œ yarn unlink --all λ₯Ό μ œμ•ˆν•©λ‹ˆλ‹€.

PR을 ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μ €λŠ” 원사 내뢀에 λŒ€ν•΄ μ „ν˜€ μ΅μˆ™ν•˜μ§€ μ•Šμ§€λ§Œ, μ„±κ³΅ν•˜λ©΄ μ œμΆœν•  λ•Œ 이 λ¬Έμ œμ— λ‹€μ‹œ λ§ν¬ν•˜κ² μŠ΅λ‹ˆλ‹€.

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