Yarn: рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рдкреИрдХреЗрдЬ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рдЬреЛрдбрд╝реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 7 рдирд╡ре░ 2016  ┬╖  50рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: yarnpkg/yarn

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдореМрдЬреВрджрд╛ рд▓рд┐рдВрдХреНрдб рдкреИрдХреЗрдЬ ( yarn link [package] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рджрд┐рдЦрд╛рддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

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

@bingzheyuan рдЖрдк рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

( 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 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

рд╡рд┐рдВрдбреЛрдЬ 10 рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рдореЗрд░реЗ рдкреАрд╕реА рдкрд░, рдпрд╛рд░реНрди рд▓рд┐рдВрдХ рдпрд╣рд╛рдВ рд╣реИрдВ:
~\AppData\Local\Yarn\Data\link\

рдХреЛрдИ рдЕрдкрдбреЗрдЯреНрд╕ ?

find node_modules -type l | grep -v .bin рдФрд░ find ~/.config/yarn/link -type l рдХреНрд░рдорд╢рдГ рд▓рд┐рдВрдХ рдФрд░ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдореЙрдбреНрдпреВрд▓ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрдХ рд╣реИрдВред

@hubgit рдкреЛрд╕реНрдЯ рдХреЛ рдкреВрд░рдХ рдХрд░рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕ рдореЗрдВ, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ PowerShell рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░реЗрдВрдЧреЗ:
Get-ChildItem '.\node_modules\.bin\' | Where-Object {$_.LinkType -eq 'SymbolicLink'}

рдпрджрд┐ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдП рддреЛ рдпрд╣ рдмрд╣реБрдд рдорджрджрдЧрд╛рд░ рд╣реЛрдЧрд╛ред рдХреНрдпрд╛ рдХреЛрдИ рдкреНрд░рдЧрддрд┐ рд╣реБрдИ рд╣реИ?

+1

+1

рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, #710 рд▓рд╛рдЧреВ рдХрд░реЗрдВред

рдЕрдЧрд░ рдореИрдВ yarn link рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕реА рдирд╛рдо рд╕реЗ рдПрдХ рдкреИрдХреЗрдЬ рдкрдВрдЬреАрдХреГрдд рд╣реИ, рддреЛ рдпрд╛рд░реНрди рдкрд╣рд▓реЗ рд╕реЗ рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рдкреИрдХреЗрдЬ рдХреЗ рдкрде рдХрд╛ рдкреНрд░рд┐рдВрдЯ рдЖрдЙрдЯ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд▓реЗ рд╕рдХрддрд╛? рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдпрд╛рд░реНрди рдЕрдиреНрдп рдкреИрдХреЗрдЬ рдХреЛ рдЕрдирд▓рд┐рдВрдХ рдХрд░рдХреЗ рдФрд░ рд╡рд░реНрддрдорд╛рди рд╡рд╛рд▓реЗ рдХреЛ рд▓рд┐рдВрдХ рдХрд░рдХреЗ рдЕрдзрд┐рдХ рд╕реНрдорд╛рд░реНрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рд╢рд╛рдпрдж -f рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде)ред

+1

+1

рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░, 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 )
рддреНрд╡рд░рд┐рдд рд╕реБрдзрд╛рд░ R рдХреЛ ls рдХрдорд╛рдВрдб рдореЗрдВ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдзреНрд╡рдЬ рдЬреЛрдбрд╝рдирд╛ рд╣реИред рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдмрд╛рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЫреЛрдЯреА рдирд┐рд░реНрднрд░рддрд╛ рд╕реВрдЪреА рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдерд╛:

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)

рдореИрдВ рдЗрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрддрдиреА рдмрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдореИрдВрдиреЗ рдЗрдиреНрд╣реЗрдВ рдмреИрд╢ рдЙрдкрдирд╛рдореЛрдВ рдореЗрдВ рдмрдирд╛ рджрд┐рдпрд╛ рд╣реИ:

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 рд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИ: рд░реЛрдирд╛:

рдХреНрдпрд╛ рдпрд╛рд░реНрди рдпрд╛ рдПрдирдкреАрдПрдо рд╕реЗ рдХреЛрдИ рдЗрд╕ рдкрд░ рдЧреМрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ? рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрдбрд╝реА рдорд╛рдВрдЧ рд╣реИ, рдХреГрдкрдпрд╛ <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 , рдореЗрд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рд╡реИрд╢реНрд╡рд┐рдХ рдлрд╝реЛрд▓реНрдбрд░ рд╣реИ рдЬреЛ рдЦрд╛рд▓реА рд╣реИред
рдореИрдВ рдордВрдЬрд╝рд░реЛ рд▓рд┐рдирдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЕрдЧрд░ рд╡рд╣ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ ..

рдХреНрдпрд╛ рдпрд╣ рдЕрднреА рднреА рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ?

рдореИрдВрдиреЗ рдПрдХ рдпрд╛рд░реНрди рд░реИрдкрд░ рдмрдирд╛рдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рдЬреЛ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдФрд░ рд╕рд╛рде рд╣реА рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ @types рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ: https://github.com/iansu/blarn

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдпрд╛рд░реНрди рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рдХреЛрдИ рдЖрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реИ, рдЗрд╕реЗ рдмрд╕ рдХрд┐рд╕реА рдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ:

  1. рдореМрдЬреВрджрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдмрд╛рд╣рд░реА (рд╕реНрдерд╛рдиреАрдп) рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП 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) рдХреА рд╕реВрдЪреА рдмрдирд╛рдиреА рдЪрд╛рд╣рд┐рдПред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ yarn unlink --all рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ (2)ред

рдореИрдВ рдПрдХ рдкреАрдЖрд░ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдореИрдВ рдпрд╛рд░реНрди рдЗрдВрдЯрд░реНрдирд▓ рд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рд╕рдлрд▓ рд╣реЛрдиреЗ рдкрд░, рд╕рдмрдорд┐рдЯ рдХрд░рддреЗ рд╕рдордп рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рд╡рд╛рдкрд╕ рд▓рд┐рдВрдХ рдХрд░реВрдВрдЧрд╛ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

davidmaxwaterman picture davidmaxwaterman  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

torifat picture torifat  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

seansfkelley picture seansfkelley  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

catkins picture catkins  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

baptistelebail picture baptistelebail  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ