
Olá de novo! Na última postagem, começamos a olhar para o processo de gerenciamento de dependências em JavaScript, classificando o básico: o que é um pacote npm, como o manifesto do pacote se parece, em quais campos as dependências são escritas e, em princípio, o que é uma árvore de dependências, bem como os fundamentos do controle de versão semântico (semver). Se você perdeu o post anterior , recomendo começar com ele.
semver, , .
npm shell autocomplete
npm . , shell.
, :
Bash:
npm completion >> ~/.bashrc source ~/.bashrc
Z shell:
npm completion >> ~/.zshrc source ~/.zshrc
shell- . , : npm smth… [TAB], shell .
, npm ( package.json). , npm init. .
: npm init -y, . npm , .
npm init, (npm initializers). boilerplate-.
: npm init <initializer>, <initializer> — (: esm react-app).
— npm- create-, npm registry . , .
React- create-react-app: npm init react-app -- my-react-app. CLI, npm init , . React, , , , , ( : my-react-app).
registry. , — npm registry. .
, : dependencies, devDependencies, peerDependencies optionalDependencies. : npm install <package-name> : npm i <package-name>.
: npm i lodash.
lodash dependencies .
: npm i lodash express passport.
install :
-P, --save-prod
dependencies ( )-D, --save-dev
devDependencies-O, --save-optional
optionalDependencies
peerDependencies, . . npm . , dependencies npm install, peerDependencies, ( IDE npm).
, , npm , . . : ( Git).
npm install , . . : .
- , «@»:
npm i lodash@3.9.2npm i lodash@3
. .
, , , git clone?
npm install npm i , npm , .
:
--only=prod[uction]--only=dev[elopment]
, , , Node.js, .
. npm : npm ls.
: npm ls [<package-name>], <package-name> , .
, ( , ):

npm ls .
, «» , : npm ls lodash.

lodash npm ls lodash.
, npm ls depth. :
npm ls --depth=0
, .
dev prod , dependencies devDependencies:
npm ls --dev[elopment]npm ls --prod[uction]
json , npm , . ( ):
npm ls --json
npm (semver). : , 1.2.3 1.2.4 (patch update) 1.3.0 (minor update), , . . semver . 1.2.3 2.0.0 , (changelog) , , , , .
, semver , , - patch minor ( , ).
, , , , , ( ).
semver . , npm : patch, minor .
package.json :
{
"dependencies": {
"lodash": "^4.17.17"
}
}
«^» (caret, hat «») semver. , lodash , 5.0.0, . . patch minor , .
, semver, npm, 99% ( npm ), . . .
, , . , . . , :
{
"dependencies": {
"lodash": "4.17.17"
}
}
, lodash 4.17.17, , .
:
- , , , — ,
- , , ( ). , , .
.
, — ( ). , . . , .
, , , . npm outdated .

npm outdated , .
:
| Package | |
| Current | |
| Wanted | , semver |
| Latest | , ( ) |
| Location |
npm outdated , , depth , npm , :
npm outdated --depth=10
:
npm outdated --depth=9999
npm npm update.
npm registry semver . registry ( semver), , , . , semver, . . npm update , .
: lodash: ^4.16.4. npm update , 4.17.19, : ^4.17.19.
npm outdated, npm update depth , . , :
npm update --depth=9999
( ) . , .
npm-check
npm outdated npm update npm-check.
:
npm i -g npm-check
, , . , semver, , . : - . !

npm-check : , .

npm-check, : , .
— npm-check , - :

npm-check , lodash .
( ) .
, . npm uninstall : rm, r un. , :
npm rm lodash express
, .
Workflow npm-
, , workflow JavaScript-. , , .
- :
npm init
()npm init -y
( IDE)
- :
npm install <dependency>npm install <dependency-1> <dependency-2>…npm install -D <dev-dependency>…
- :
npm outdated
( )npm outdated --depth=9999
( )npm update
( semver)npm update --depth=9999
( semver)npm-check
( )npm-check -u
( )
- :
npm rm <dependency>
, , . semver .
. , !
→