DĂ©pendances JavaScript: tout ce que vous avez toujours voulu savoir mais que vous aviez peur de demander

Votre guide détaillé des cinq types de dépendance

Bonjour, Khabrovites. Pour les futurs étudiants sur le cours "Développeur JavaScript. Professionnel" a préparé une traduction du matériel.



Nous invitons également tout le monde à un webinaire ouvert sur le thème
"Vue 3 - les capacités de la nouvelle version de l'un des frameworks frontend les plus populaires" . Dans la leçon, les participants, accompagnés d'un expert:

- Considérez les principales différences dans la syntaxe de vue2 de vue3;

- comprendra comment travailler avec vue-router et VueX dans la nouvelle version du framework;

- créez un projet Vue 3 à partir de zéro en utilisant Vue-cli.






Que vous soyez un développeur back-end travaillant avec Node.js ou un développeur front-end utilisant Node.js uniquement comme outil de packaging et de regroupement, vous êtes probablement tombé sur un système de dépendance.





5 (, , 5 ), ? , , .





.       .       .





Normal (runtime) dependencies (c ( ) ) 

, ?





— , "dependencies" package.json



. ( ) (), NPM (node package manager ) ( npmjs.org



).





, . :





  • . , (.. >1.2.0 ), (.. <=1.2.0 ), (.. >= , > , <) . ~ (.. "lodash":"~1.2.2, 1.2.2 1.3.0 , , ). "" , semver   (.. "lodash": "^1.2.0", , - ).





  • URL-. , URL, - (, Github tarball-).





  • . , . , , NPM. " " . , , , - file://



    .





?





, , .





, , , , , . , React Babel, , , , , , ( , ).





, , , , , .





.       .       .





Peer dependencies ( )

Peer dependencies — , , , , , , . , .





, , ? , , Babel, Babel , , , , Babel -.





, , Babel , , , Babel. , , NPM, , — Babel -, .





Peer dependencies?





Peer dependencies , , , , .





:





  • , . peer dependency.





  • , . peer dependency.





, peerDependencies, :





  • Babel . , Babel, (peer dependency).





  • Express middleware packages (- ): NPM, peer dependencies. Express   , , (middleware) .





  • Micro Frontend (), , ( ), . Peer dependencies .





  • Bit components. front-end , , React- Bit (Github), react peer dependency. , .





, React , : , ( , ).





component, Bit’s component hub.





, , package.json, peer dependencies:





, , , React-.





(1KB) — .





.       .       .





Dev Dependencies (Dev )

, ? , , , , ? .





(Development dependencies) , , .





, , , (linting tools), .





, , dev dependency.





, npm install



  npm link



  .





, , . , dev dependencies.





dev dependencies?





, , , dev dependencies ( ).





, , -.  





- dev- , , npm install



-, dev- .





Dev , .





.       .       .





(Bundled Dependencies)

, . npm pack



, (tarball-).





, bundledDependencies



( : bundleDependencies



, ), .





{
...
   "dependencies": {
    "lodash": "1.0.2",
    "request": "4.0.1"
  },
  "bundledDependencies": ["lodash"]
...
}
      
      



package.json



, , npm pack



tarball



, lodash



.





(, URL ).





.       .       .





(Optional dependencies)

, , , . ? NPM , , .





, npm install



- ( - , , - ), .





NPM . , , , :





let foo = null;
try {
  foo = require("foo-dep");
} catch (e) {
  foo = require("./local-polyfill")
}
//... use foo from here on out
      
      



(optional dependencies)?





— . , ? . , , , , , .





, (optional dependencies). , , , CI(Continuous Integration)-. , , , , .





npm install



, , npm install --no-optional



, . , .





.       .       .





, - NPM , dev-. 3, , .





, , .





, ? , , !






"JavaScript Developer. Professional".





«Vue 3 — ».








All Articles