Dependências de JavaScript: tudo o que você sempre quis saber, mas tinha medo de perguntar

Seu guia detalhado para os cinco tipos de vício

Olá, Khabrovites. Para os futuros alunos do curso "JavaScript Developer. Professional" preparamos uma tradução do material.



Também convidamos a todos para um webinar aberto sobre o tópico
"Vue 3 - os recursos da nova versão de uma das estruturas de front-end mais populares . " Na lição, os participantes, juntamente com um especialista:

- Considere as principais diferenças na sintaxe de vue2 de vue3;

- entenderá como trabalhar com vue-router e VueX na nova versão do framework;

- crie um projeto Vue 3 do zero usando Vue-cli.






Quer você seja um desenvolvedor de back-end trabalhando com Node.js ou um desenvolvedor de front-end usando Node.js apenas como uma ferramenta de empacotamento e empacotamento, provavelmente você se deparou com um sistema de dependência.





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