JavaScript依存関係管理

JavaScript依存関係管理



こんにちは!私の名前はスラバフォミンです。私はDomClickのリード開発者です。私の16年間の実践の間に、私はJavaScriptの標準とエコシステムとしての出現と開発の最前線に立ってきました。私たちの会社では、まずJavaScriptを使用して高度なフロントエンド開発を行っており、かなり多数のさまざまなテクノロジー、ツール、アプローチを試し、多くのショットを取得しています。この骨の折れる仕事の結果は、私があなたと共有したい最も貴重な経験でした。



, , , . , , . , , .



, :



  • , .
  • .
  • 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. , :



  • , ,
  • ,
  • URL , URL git-, URL -,
  • ,
  • , ,
  • ,
  • ,
  • (scripts) ,
  • . (. ).


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 : .





JavaScript: , , . , semver, .






All Articles