Hallo! Mein Name ist Slava Fomin, ich bin ein leitender Entwickler bei DomClick. Während meiner 16-jährigen Praxis war ich an der Spitze der Entstehung und Entwicklung von JavaScript als Standard und Ökosystem. In unserem Unternehmen verwenden wir JavaScript vor allem für die fortgeschrittene Front-End-Entwicklung und haben es geschafft, eine relativ große Anzahl verschiedener Technologien, Tools und Ansätze auszuprobieren und viele Aufnahmen zu machen. Das Ergebnis dieser sorgfältigen Arbeit war die wertvollste Erfahrung, die ich mit Ihnen teilen möchte.
, , , . , , . , , .
, :
- , .
- .
- semver .
- , .
- (resolving).
- .
- .
- , .
- lock- .
- , .
- , .
- CI/CD.
- .
, !
… , ; , , , , , , , …
—
, , -, , . , - , ?
-, - . , , , Angular, React, Express, Lodash, Webpack , .
JavaScript
« », ( jQuery) , . , : . , . .
, , . , , .
Node.js
- Node.js, , , JavaScript-, front-end , , SSR . , Node.js (Node Package Manager, npm), , JavaScript.
, ESM JavaScript : script
. Node . CommonJS ( «/ JavaScript», CJS), - . Node (Node.js module resolution algorithm) , .
, Node.js , - JavaScript-.
: npm- — JavaScript. . .
, , , , npm registry. npm registry, registry.npmjs.org. npm registry ( ). , registry. ( npm).
npm.
, . , (, lodash), , (, webpack).
. , . , , , . , :
npm ls
— , : HTTP- Express ( ) Lodash ( ). , debug
4 . deduped
, npm ( ).
Node Unix, - , . , , . , node_modules
, . , JavaScript :
? , , -: package.json. , :
, :
dependencies
,devDependencies
,peerDependencies
,optionalDependencies
.
JSON-, , — , .
:
{
…
"dependencies": {
"lodash": "^4.17.15",
"chalk": "~2.3",
"debug": ">2 <4",
},
…
}
.
dependencies
dependencies
, . Node.js. - , import { get } from 'lodash'
, dependencies
. , , .
devDependencies
devDependencies
, , . , typescript, webpack, eslint . , .
peerDependencies
peerDependencies
. , Webpack, peerDependencies
webpack, .
, , , .
peerDependencies
, , . , . , , Webpack, .
optionalDependencies
optionalDependencies
, . , .
, , , try… require… catch
.
front-end
. , Node.js, , , . , front-end .
- , npm- front-end , , : «» , node npm.
front-end . , front-end Node.js.
Node.js- , npm registry, , . dependencies
.
front-end npm registry, () , , CDN. -, npm front-end , . private: true
, , npm-registry. , . . «» .
front-end dependencies
, , : dependencies
, , , lodash
, react
, date-fns
. ., devDependencies
— , : webpack
, eslint
, @types
. .
, , Node.js! , , , devDependencies
. .
npm semver ( Semantic Versioning ( )).
, : (major) , (minor) patch-:
: 3.12.1.
, , , .
patch- , , .
minor- , , .
major- , API, , , , . CHANGELOG .
1.0.0, , 0.0.3 0.1.2, semver : .