Halo! Nama saya Slava Fomin, saya adalah pengembang utama di DomClick. Selama 16 tahun berlatih, saya telah berada di garis depan kemunculan dan pengembangan JavaScript sebagai standar dan ekosistem. Di perusahaan kami, kami menggunakan JavaScript, pertama-tama, untuk pengembangan front-end yang maju dan telah berhasil mencoba sejumlah besar teknologi, alat dan pendekatan yang berbeda, dan mendapatkan banyak hasil. Hasil dari kerja keras ini adalah pengalaman paling berharga yang ingin saya bagikan dengan Anda.
, , , . , , . , , .
, :
- , .
- .
- 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 : .