npm ci
postinstall
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд╣реАрдВ рдЪрд▓рддреА рд╣реИ
npm ci
рдХреЛ postinstall
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
{
"scripts": {
"postinstall": "echo \"it should echo this\""
}
}
npm install
рдЪрд▓рд╛рдПрдВnpm ci
рдЪрд▓рд╛рдПрдВnpm ci
postinstall
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд╣реАрдВ рдЪрд▓рд╛рддреЗ рд╣реИрдВрдкреВрд░реНрд╡ред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд░рд╛рджрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдХрдо рд╕реЗ рдХрдо npm v6
рдФрд░ рдмрдЧ рдХреА рддрд░рд╣ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдмрд╣реБрдд рднреНрд░рд╛рдордХ рд╣реИред
preinstall
, install
& postinstall
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬреАрд╡рдирдЪрдХреНрд░ рдХреА рдШрдЯрдирд╛рдПрдБ рд╣реЛрддреА рд╣реИрдВ рдЬреЛ рддрдм рднрдбрд╝рдХ рдЬрд╛рддреА рд╣реИрдВ рдЬрдм рдПрдХ рдкреИрдХреЗрдЬ рдЦреБрдж рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдпрд╛ рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реЛрддрд╛ рд╣реИред рдЙрд╕ рдиреЗ рдХрд╣рд╛, рдЖрдк npm run
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрди рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЯреНрд░рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред
рдпрджрд┐ рдЖрдк рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реНрддрд░ рдкрд░ install
рдЪрд▓рд╛рдиреЗ рдкрд░ рд╣рд░ рдмрд╛рд░ рдХрд┐рд╕реА рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк hook scripts
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдЕрд░реНрдерд╛рдд, рдИрд╡реЗрдВрдЯ рдХреЗ рд╕рдорд╛рди рдирд╛рдо рдХреЗ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ред ./node_modules/.hooks/
)ред
рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдЧрд▓рдд рд╣реВрдВ рдФрд░ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ / CLI рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдпрд╣рд╛рдБ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рд╕рд┐рд░реНрдл рдЪреЗрди (рдпрд╛рдиреАред npm install x && npm run y
, рдпрд╛ рд╣рдореЗрдВ install-test
& install-ci-test
рдЬреИрд╕реЗ рдЖрд╕рд╛рди рдХрдорд╛рдВрдб рдорд┐рд▓реЗ рд╣реИрдВ, рдЬреЛ npm install
рддрдм npm run test
рдЬреЛ рд╣реИ / рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдерд╛)
рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдирдкреАрдПрдо 6 рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдПрдирдкреАрдПрдо 6:
рдПрдирдкреАрдПрдо 7:
рд╣рдореНрдо, рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рдФрд░ рдЕрдзрд┐рдХ рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрдВрд╕реНрдЯреЙрд▓ рдХреЛ рд╢рд╛рдВрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ рдФрд░ рд╣рдордиреЗ рдЙрд╕ рдкрд░ рдПрдХ RFC рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдерд╛ (Refред Https://github.com/npm/rfcs/blob/latest/implemented/0022- quieter-install-scripts.md); рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЕрднреА рднреА рдЙрди рдкрд░ рдЪрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдЗрд╕реЗ рджрд░реНрдЬ рдХрд░реВрдВрдЧрд╛ рдФрд░ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдХрд┐рд╕реА рдХреЛ рдереЛрдбрд╝рд╛ рдФрд░ рдЦреЛрдж рд╕рдХрддреЗ рд╣реИрдВред
рдореИрдВ рдпрд╣ рджреВрд╕рд░рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдореЗрд░реЗ рдкрд╛рд╕ рд╣рд╕реНрдХреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рд╣реИрдВред рдПрдХ рддрд╛рдЬрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп, рд╣реБрд╕реНрдХреА рдирд╣реАрдВ рдЪрд▓рддрд╛ рд╣реИ, рди рд╣реА рдпрд╣ рдЧрд┐рдЯ рд╣реБрдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ NPM v6 рд╕реЗ NPM v7 рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдПрдХ рдмрд╛рдд рдЬреЛ рдУрдкреА рдХреЗ рдореБрджреНрджреЗ рд╕реЗ рдереЛрдбрд╝реА рдЕрд▓рдЧ рд╣реИ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ (рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐) рдмрд╛рдж рдореЗрдВ рдЪрд▓рдиреЗ рд╡рд╛рд▓реА рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рд╣рд╕реНрдХреА рдХреЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╣реИрдВ, рди рдХрд┐ рд░реВрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВред
рдЙрджрд╛рд╣рд░рдг npm ci
рд╣реБрд╕реНрдХреА рдХреЗ рд▓рд┐рдП
$ npm ci
npm WARN prepare removing existing node_modules/ before installation
> [email protected] install ./atlas-server/node_modules/husky
> node husky install
husky > Setting up git hooks
husky > Done
> [email protected] postinstall ./atlas-server/node_modules/husky
> opencollective-postinstall || exit 0
Thank you for using husky!
If you rely on this package, please consider supporting our open collective:
> https://opencollective.com/husky/donate
...
рдореИрдВ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ lerna
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдореЗрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ postinstall
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
"scripts": {
"postinstall": "lerna bootstrap",
https://github.com/mobilusoss/textlint-browser-runner/blob/master/package.json#L18
postinstall
рдХреЛ npm ci
рдмрд╛рдж TrapmCI рдкрд░ npm v 6.14.8 рдХреЗ рд╕рд╛рде рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛
https://travis-ci.com/github/mobilusoss/textlint-browser-runner/builds/191070080
рд▓реЗрдХрд┐рди npm v7.0.3 postinstall
https://travis-ci.com/github/mobilusoss/textlint-browser-runner/jobs/403527216
рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди lerna bootstrap
рдмрд╛рдж npm ci
lerna bootstrap
рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХреЙрд▓ рдХрд░ рд░рд╣рд╛ рд╣реИ
рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВред рджреЛрдкрд╣рд░ 7.0.0 рдХреЗ рдмрд╛рдж рд╕реЗ рдмреНрд░реЗрдХрд┐рдВрдЧ рдЪреЗрдВрдЬ
рд╢рд╛рдпрдж рдХреЗ рдХрд╛рд░рдг
рдХреЗрд╡рд▓ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ (npm рдкрд░реАрдХреНрд╖рдг, npm рдкреНрд░рд╛рд░рдВрдн, npm рд░реЛрдХ, рдФрд░ npm рдкреБрдирд░рд╛рд░рдВрдн) рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрдорд╛рдВрдб рдЕрдм рдЕрдкрдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдПрдВрдЧреЗ рднрд▓реЗ рд╣реА --ignore- рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗрдЯ рд╣реЛред GA v7.0.0 рд░рд┐рд▓реАрдЬрд╝ рд╕реЗ рдкрд╣рд▓реЗ, рд╡реЗ рдкреВрд░реНрд╡ / рдкреЛрд╕реНрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд╣реАрдВ рдЪрд▓рд╛рдПрдВрдЧреЗ, рд╣рд╛рд▓рд╛рдВрдХрд┐ред (рдЗрд╕рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП npm рдкрд░реАрдХреНрд╖рдг --ignore- рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЪрд▓рд╛рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рд▓рд┐рдВрдЯрд░ рдХреЛ рдирд╣реАрдВред)
рдХреНрдпрд╛ рдЗрд╕реЗ рдмрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ рдпрд╛ npm 7 рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд░реВрдк рдореЗрдВ?
@darcyclarke @isaacs рдкреНрд░рддреНрдпрдХреНрд╖ рдЯреИрдЧ рдХреЗ рд▓рд┐рдП рдорд╛рдлреА
рдпрд╣рд╛рдБ рдПрдХ рдиреНрдпреВрдирддрдо рд░реЗрдкреНрд░реЛ рд╣реИ, рдЕрдЧрд░ рдпрд╣ рдореВрд▓ рдореБрджреНрджреЗ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ:
{
"scripts": {
"prepare": "echo foo"
}
}
npm@6
, рджреЛрдиреЛрдВ npm install
рдФрд░ npm ci
"рдлреВ"ред npm@7
, npm install
рдкреНрд░рд┐рдВрдЯ "рдлреВ" рд▓реЗрдХрд┐рди npm ci
рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕реНрдерд╛рдкрд┐рдд рдХрдорд╛рдВрдб рдореЗрдВ рдЙрдкрдпреБрдХреНрдд рдЗрдВрд╕реНрдЯреЙрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмреНрд▓реЙрдХ рд╣реИ, рд▓реЗрдХрд┐рди ci рдХрдорд╛рдВрдб рдореЗрдВ рдРрд╕рд╛ рдХреЛрдИ рдмреНрд▓реЙрдХ рдирд╣реАрдВ рд╣реИ:
https://github.com/npm/cli/blob/a28aff769a77f127f371c31afcb9e9814722e5cd/lib/install.js#L44 -L62
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
@darcyclarke @isaacs рдкреНрд░рддреНрдпрдХреНрд╖ рдЯреИрдЧ рдХреЗ рд▓рд┐рдП рдорд╛рдлреА
рдпрд╣рд╛рдБ рдПрдХ рдиреНрдпреВрдирддрдо рд░реЗрдкреНрд░реЛ рд╣реИ, рдЕрдЧрд░ рдпрд╣ рдореВрд▓ рдореБрджреНрджреЗ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ:
npm@6
, рджреЛрдиреЛрдВnpm install
рдФрд░npm ci
"рдлреВ"редnpm@7
,npm install
рдкреНрд░рд┐рдВрдЯ "рдлреВ" рд▓реЗрдХрд┐рдиnpm ci
рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИредрд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕реНрдерд╛рдкрд┐рдд рдХрдорд╛рдВрдб рдореЗрдВ рдЙрдкрдпреБрдХреНрдд рдЗрдВрд╕реНрдЯреЙрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмреНрд▓реЙрдХ рд╣реИ, рд▓реЗрдХрд┐рди ci рдХрдорд╛рдВрдб рдореЗрдВ рдРрд╕рд╛ рдХреЛрдИ рдмреНрд▓реЙрдХ рдирд╣реАрдВ рд╣реИ:
https://github.com/npm/cli/blob/a28aff769a77f127f371c31afcb9e9814722e5cd/lib/install.js#L44 -L62