рдПрдирдкреАрдПрдо рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рджреМрд░рд╛рди (?) рд▓реЙрдХ (рдкреИрдХреЗрдЬ-рд▓реЙрдХ.рдЬреЗрд╕рди рдирд╣реАрдВ) рдмрдирд╛рдиреЗ рдХреЗ рдХрд╛рд░рдг рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред
lchown
npm рд▓реЙрдХ рдлрд╝рд╛рдЗрд▓реЗрдВ (рдкреИрдХреЗрдЬ-lokc.json рдирд╣реАрдВ)редwhere
рдЕрдиреБрднрд╛рдЧ рджреЗрдЦреЗрдВредnpm install
рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрд░рдВрдн рдХрд░реЗрдВnpm test node
. рдЪрд▓рд╛рдПрдБрд▓рд┐рдирдХреНрд╕ рдкрд░ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╕рдорд╛рди рд░реЗрдкреНрд░реЛ рдЪрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рднреА рд╣реЛрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
npm ERR! syscall lchown
npm ERR! path /home/nathansa/.npm/_locks/staging-33722a1ecded5100.lock
npm ERR! errno -2
npm ERR! enoent ENOENT: no such file or directory, lchown '/home/nathansa/.npm/_locks/staging-33722a1ecded5100.lock'
npm ERR! enoent This is related to npm not being able to find a file.
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдореИрдВ рдиреЛрдб 11.0.0 + npm 6.7.0 рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдРрд╕рд╛ рдХрдо рд╣реЛрддрд╛ рд╣реИред
рдиреЛрдб 11.0.0 рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрдЬреАрдм рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдиреЛрдб 11 рдХреБрдЫ рд╕рдордп рд╕реЗ рдИрдУрдПрд▓ рд╣реИред рд╢рд╛рдпрдж рд╡рд░реНрддрдорд╛рди рдПрд▓рдЯреАрдПрд╕ 12.13.1 рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ? рдпрд╛ рдпрд╣ рд╢рд╛рдпрдж рдкреБрд░рд╛рдирд╛ рдПрдирдкреАрдПрдо рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рдЬреЛ рдиреЛрдб 11 рдХреЗ рд╕рд╛рде рдмрдВрдбрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдЗрд╕рд╕реЗ рдмрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╣рд╛рдБ, рдореИрдВ рдХреЗрд╡рд▓ рдЙрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреАрдЫреЗ рдХреА рдУрд░ рдпрд╛рддреНрд░рд╛ рдХрд░ рд░рд╣рд╛ рдерд╛ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВрдиреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдореБрдЭреЗ рдПрдХ рдЧреИрд░-рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдкреБрд░рд╛рдиреЗ npm рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рд╣реЛрдиреЗ рдХреА рдмрд╣реБрдд рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред
@sandersn рд╢рд╛рдпрдж рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рдмрд╛рдЗрдирд░реА рдЦреЛрдЬ рдХрд░ рд╕рдХрддрд╛ рд╣реИ? рдореИрдВ
Lerna рдХрд╛ рд▓рдЧрд╛рддрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЗрд╕ рдмрдЧ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░рдирд╛, рдЬреЛ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рд╣рдорд╛рд░реА рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдБ рдкреИрджрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред
рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢:
lerna ERR! npm install stderr:
┬а | npm ERR! code ENOENT
┬а | npm ERR! syscall lchown
┬а | npm ERR! path /root/.npm/_locks/staging-3f138bd09ee0de58.lock
┬а | npm ERR! errno -2
┬а | npm ERR! enoent ENOENT: no such file or directory, lchown '/root/.npm/_locks/staging-3f138bd09ee0de58.lock'
┬а | npm ERR! enoent This is related to npm not being able to find a file.
┬а | npm ERR! enoent
рдпрд╣ node:latest-alpine
рдбреЙрдХрд░ рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╣реИ, рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:
рдиреЛрдб: 12.13.1
рдПрдирдкреАрдПрдо: 6.12.1
рдореИрдВ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдореЗрд░реЗ рд╕рд╛рде рдиреЛрдб v13.2.0 рдФрд░ npm 6.13.4 рдХреЗ рд╕рд╛рде рднреА рд╣реЛ рд░рд╣рд╛ рд╣реИред
рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрд╕реНрдерд╛рдпреА рд╕реБрдзрд╛рд░ рд╣реИ? рдЪреВрдВрдХрд┐ рдпрд╣ рд╣рдорд╛рд░реА рдХреБрдЫ рддреИрдирд╛рддреА рдХреЛ рд░реЛрдХ рд░рд╣рд╛ рд╣реИред :(
@midudev рдЕрд╕реНрдерд╛рдпреА рд╢рдорди npm i
рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдирд╣реАрдВ рдЪрд▓рд╛рдирд╛ рд╣реИ рдпрд╛ рдХрдо рд╕реЗ рдХрдо рд╕рдорд░реВрдкрддрд╛ рдХреЛ рдХрдо рдХрд░рдирд╛ рд╣реИред
рдбреАрдЯреА рд░реЗрдкреЛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЗрд╕реЗ 2 рд╕рдорд╛рдирд╛рдВрддрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рддрдХ рд╕реАрдорд┐рдд рдХрд░рддреЗ рд╣реБрдП рдЗрд╕рдиреЗ рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рд▓рдЧрднрдЧ ~ 90% рдХрдо рдХрд░ рджрд┐рдпрд╛ред
рдзрдиреНрдпрд╡рд╛рдж @SimonSchickред рд╣рд╛рдБ... рдХреЛрдИ рд╕рдорд╕рд╛рдордпрд┐рдХрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЬрд╛рддреА рд╣реИ рд▓реЗрдХрд┐рди рд╕рдВрдХреБрд▓ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдордп рдмрд╣реБрдд рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИред :(
рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдПрдирдкреАрдПрдо рдЯреАрдо рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдЕрд╡рдЧрдд рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣реА рдереАред рдЕрдЧрд░ рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдиреЛрдб рдкрд░ рдХреБрдЫ рдЖрдВрддрд░рд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддреЗ рд╣реИрдВред
рдирдорд╕реНрддреЗ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реИред
рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рдореБрджреНрджрд╛ рд╣реИред
рдЕрд╕реНрдерд╛рдпреА рд╕реБрдзрд╛рд░ [email protected]
рдкрд░ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд░рдирд╛ рд╣реИред
рдореИрдВрдиреЗ 6.10.2
рд╕реЗ рд▓реЗрдХрд░ рдирд╡реАрдирддрдо 6.13.6
рддрдХ рд▓рдЧрднрдЧ рд╣рд░ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рд╕рдорд╕реНрдпрд╛ рд╣реИред
рдореИрдВ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдмрдЧ nodejs
рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИ, рдпрд╣ рд╕рд┐рд░реНрдл npm
рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред
рд╣рдо https://github.com/strongloop/loopback-next рдХреЗ рд╡рд┐рд░реБрджреНрдз npm i
рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ рдПрдХ рд▓рд░реНрди рдореЛрдиреЛрд░реЗрдкреЛ рд╣реИред рд░реВрдЯ рд╕реНрддрд░ рдкрд░ npm i
рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрдИ рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП npm рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИред рд╕рдорд╡рд░реНрддреА рдХреЛ рдХрдо рдХрд░рдиреЗ рд╕реЗ рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдЧрдИ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдЪрд▓рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рднреА рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИред
рд╣рдо рд▓реЙрдХрдлрд╛рдЗрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ NODE_DEBUG=lockfile npm i
ред
рдХреБрдЫ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ https://github.com/npm/cli/blob/latest/lib/utils/correct-mkdir.js#L31 рдХреЗ рдЖрд╕рдкрд╛рд╕ рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓реАред рдпрджрд┐ npm
рдХреЛ рдПрдХ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ chownr
рдХреЛ ~/.npm/_locks
$ рдХреЗ рд╡рд┐рд░реБрджреНрдз рдХреЙрд▓ рдХрд░рддреА рд╣реИрдВред chownr
рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрдврд╝рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╡рд┐рд░реБрджреНрдз chown
рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдХреБрдЫ рдлрд╝рд╛рдЗрд▓реЗрдВ readdir
рдФрд░ lchown
рдХреЗ рдмреАрдЪ рд╣рдЯрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ рдФрд░ рдЗрд╕рд╕реЗ ENOENT
рд╣реЛ рдЬрд╛рддреА рд╣реИред
@isaacs рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ https://github.com/raymondfeng/chownr/commit/e4c7b59fe4142995ae36c71de3435d2e2a7e4319 рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдЬрдЧрд╣ рд╣реИред рдЕрдЧрд░ рдРрд╕рд╛ рд╣реИ, рддреЛ рдореИрдВ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдкреАрдЖрд░ рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ред
@raymondfeng рдпрд╣ рдПрдХ рдЙрдЪрд┐рдд рдмрджрд▓рд╛рд╡ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред рд╣рд╛рдВ, рдХреГрдкрдпрд╛ рдЪрд╛рдЙрдирд░ рдХреЛ рдПрдХ рдкреАрдЖрд░ рднреЗрдЬреЗрдВред
@isaacs PR рд╕рдмрдорд┐рдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ - https://github.com/npm/cli/issues/496ред рддрддреНрдкрд░ рдЬрд╡рд╛рдм рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдХреБрдЫ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ https://github.com/npm/cli/blob/latest/lib/utils/correct-mkdir.js#L31 рдХреЗ рдЖрд╕рдкрд╛рд╕ рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓реАред рдпрджрд┐
npm
рдХреЛ рдПрдХ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВchownr
рдХреЛ~/.npm/_locks
$ рдХреЗ рд╡рд┐рд░реБрджреНрдз рдХреЙрд▓ рдХрд░рддреА рд╣реИрдВредchownr
рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрдврд╝рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╡рд┐рд░реБрджреНрдзchown
рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдХреБрдЫ рдлрд╝рд╛рдЗрд▓реЗрдВreaddir
рдФрд░lchown
рдХреЗ рдмреАрдЪ рд╣рдЯрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ рдФрд░ рдЗрд╕рд╕реЗENOENT
рд╣реЛ рдЬрд╛рддреА рд╣реИред