npm link foo-bar
рдЕрдкрдбреЗрдЯ рдкреИрдХреЗрдЬ.рдЬреЛрди рдХреЛ рдХреЗрд╡рд▓ рд╕рд┐рдорд┐рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдлреВ-рдмрд╛рд░ рдореЙрдбреНрдпреВрд▓ рдХреА рд╕реНрдерд╛рдиреАрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдлреВ-рдмрд╛рд░ git (git + ssh) рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдПрдХ рдирд┐рдЬреА рдкреИрдХреЗрдЬ рд╣реИ
npm link foo-bar
node_modules/
рдкреИрдХреЗрдЬ #json рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдмрд┐рдирд╛
$ cd ./foo-bar && npm link
$ cd ../other-package && (cat ./package.json | grep "foo-bar")
"foo-bar": "git+ssh://[email protected]:..."
$ npm link foo-bar
$ cat ./package.json | grep "foo-bar"`
"foo-bar": "file:../foo-bar",
рдкреИрдХреЗрдЬ foo-рдмрд╛рд░ рдЕрдм рд╕реНрдерд╛рдиреАрдп рд╕рд╛рдВрдХреЗрддрд┐рдХ рд░реВрдк рд╕реЗ рд▓рд┐рдВрдХ рд╣реИ foo-bar
рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдмрдЬрд╛рдп рдореЗрдВ рд▓рд┐рдВрдХ npm root -g
рдореИрдВ рд╡рд┐рдВрдбреЛрдЬ 10 1909 рдкрд░ NodeJS 15.0.1 рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдЕрдиреБрднрд╡ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реВрдВред
рдФрд░ рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдРрд╕рд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдореБрдЭреЗ рдЕрд╡рд╛рдВрдЫрд┐рдд рд▓рдЧрддрд╛ рд╣реИред
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдШрдЯрд╛ рд╣реБрдЖ рд░рд┐рдкреНрд░реЛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
$ git clone [email protected]:wesleytodd/english-days.git && cd english-days && npm link && cd .. # this is just a dep free test package I use
$ mkdir link-to && cd link-to && npm init -y && npm i english-days
$ cat package.json | grep english-days # "english-days": "^1.0.0"
$ npm link english-days
$ cat package.json | grep english-days # "english-days": "file:../english-days"
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдКрдкрд░ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА link
рдХреЗ рд╕рд╛рде рдЖрджреЗрд╢ --no-save
рдЬреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рдмрджрд▓рд╛ рдФрд░ рдПрдХ рдЕрдиреНрдп рдмрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рд╕рдорд╛рдзрд╛рди:
ln -s ../foo-bar ./node_modules/foo-bar
)$ cd ./foo-bar && npm link
$ cd ../other-package
$ npm i --no-save "$(npm root -g)/foo-bar"
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рд╣рд╛рдиреБрднреВрддрд┐ рджреЗрдирд╛ рдЬреИрд╕реЗ рдХрд┐ рдХреЛрдИ рднреА рдмрд╛рдЗрдирд░реА рд╕рд┐рдореНрдмрд▓ рдХреЛ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдФрд░ рди рд╣реА рдпрд╣ рдЙрдкрдпреБрдХреНрдд рдЬреАрд╡рдирдЪрдХреНрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдПрдЧрд╛ред
рд╕рд╛рде рд╣реА рдЙрдкрд░реЛрдХреНрдд рд▓рд┐рдВрдХ рдХрдорд╛рдВрдб рдХреЛ --no-save рдХреЗ рд╕рд╛рде рдЖрдЬрд╝рдорд╛рдпрд╛ рдЬреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛ рдФрд░ рджреВрд╕рд░рд╛ рдмрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
--no-save
рд╕рд╛рде рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рднреА рдореЗрд░реА рдкрд╣рд▓реА рд╡реГрддреНрддрд┐ рдереА рдЬрдм рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ npm link
рд╕рдВрд╢реЛрдзрд┐рдд package.jsonред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдмрджрд▓рд╛рд╡ рд╣реИ рдЬрд┐рд╕реЗ рдЬрд╛рд░реА рдиреЛрдЯреЛрдВ рдореЗрдВ рдиреНрдпреВрдирддрдо рд░реВрдк рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдореИрдВ рдПрдХ рдЬрдЯрд┐рд▓ рд╡рд┐рдХрд╛рд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП npm link
рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ рдЕрдм рдпрд╣ рдЦрдбрд╝рд╛ рд╣реИ рдХрд┐ рдмрд╕ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред Package.json рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдореЗрд░реА рдмрд╣реБрдд рдмрдбрд╝реА рдХреНрд╖рдорддрд╛ рд╣реИ (рдпрд╛ рдХреЛрдИ рднреА рд╕рдорд╛рди рд╕реЗрдЯрдЕрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛) рдЧрд▓рддреА рд╕реЗ Package.json рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рд╢реБрд░реБрдЖрдд рдХрд░ рд░рд╣рд╛ рд╣реИ, рдФрд░ рд╕рдм рдХреБрдЫ рддреЛрдбрд╝ рд░рд╣рд╛ рд╣реИред
рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдПрдирдкреАрдПрдо рдХрд╛ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдЗрд╕ рдмрд╛рдд рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗ / рд╣рдореЗрдВ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рд┐рд░-рджрд░реНрдж рджреЗ, рдореБрдЭреЗ рд╡рд╛рдкрд╕ npm @ 6 рдкрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯрдирд╛ рдкрдбрд╝рд╛ рдХреНрдпреЛрдВрдХрд┐ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдПрдХ рджрд░реНрдж рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЬрдм рдЖрдкрдХреЛ рдЗрд╕реЗ рдЕрдХреНрд╕рд░ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рд╣рд╛рдиреБрднреВрддрд┐ рджреЗрдирд╛ рдЬреИрд╕реЗ рдХрд┐ рдХреЛрдИ рднреА рдмрд╛рдЗрдирд░реА рд╕рд┐рдореНрдмрд▓ рдХреЛ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдФрд░ рди рд╣реА рдпрд╣ рдЙрдкрдпреБрдХреНрдд рдЬреАрд╡рдирдЪрдХреНрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдПрдЧрд╛ред