Auswählen von JavaScript-Abhängigkeiten

Auswählen von JavaScript-Abhängigkeiten



Hallo! Im vorherigen Beitrag haben wir ausführlich über das Hinzufügen von Abhängigkeiten zu einem Projekt und über Möglichkeiten und Strategien zu deren Aktualisierung gesprochen.



In diesem Beitrag möchte ich, wie versprochen, unglaublich wichtige Themen wie Stabilität und Sicherheit im Abhängigkeitsmanagement erörtern. Hoffentlich helfen Ihnen meine Tipps dabei, das Chaos zu kontrollieren, Risiken zu reduzieren und immer auf der sicheren Seite zu bleiben!



Kontrolliertes Chaos



npm — , , . , : , , , . npm , , , .





. , , (). , «», «»? - .





, , , . : . .



, . , , , , , .





— (JavaScript) (Node.js API). , , , , . , , 100%, .



, . Babel ( tsc) , (ESNext) API . . , , , . , , , , , .





, - (, lodash). , , , , .





, , , . , . , , . , lodash, ramda underscore , - .





, , - . , , ( ), . , , (, ).





, . , — .



, , .





? .



, , — . , — , , , .



?



, , , , — . , , , .






, , , .





, GitHub , . , — , . , , , , (. ).



GitHub, registry npm ( «Weekly Downloads» npmjs.com).





, , Google Trends:





StackOverflow:







(), . , IT OpenSource (Google, Microsoft, Facebook . .). , ( !).



, : , GitHub, , YouTube, (, ).





GitHub. , (, ), ( , ), (issues) ( , ), , PR, .



— . , - ( PR). , , .





, . , ( ). , . , API , .



(changelog) (releases GitHub) patch-, minor- major- , , (semver) . , , .





, . , , , . , , , . , , ?



, CI/CD, . , .





TypeScript, ! ( ). .



, (TypeScript Flow). , , .



, JavaScript ( ), (typing declarations). , . , API , - PR.



Definitely Typed :



npm view @types/<package-name>


<package-name> — , . , (scope), @ .



:



#   "react"
npm view @types/react

#   "babel@preset-env"
npm view @types/babel__preset-env


Definitely Typed, , , .





. . , , , , . , .



, : ? ? ? — , , , .





front-end , «» Bundle Phobia, :







. . - , , , : — , . , . , .



, , , . . .



Pro Tip:



- , , , , .



, , , . , , , (. adapter pattern).



( ) , (, dependency injection ).



:



//=======================//
// utils/do-something.js //
//=======================//

//   
import { doSomething as libraryDoSomething } from 'third-party-library';

//     ,
//      
export function doSomething(...args) {

  //   
  // (        )
  return libraryDoSomething(...args);

}

//========//
// foo.js //
//========//

import { doSomething } from './utils/do-something';

//       
doSomething();

//========//
// bar.js //
//========//

import { doSomething } from './utils/do-something';

//        
doSomething(100500, true);


Pro Tip:



, , , , — .



API , . - , , .



, . - , , , .



Awesome Node.js



! ( , , ) node.cool, Node.js . !





, , .



lock- , CI/CD. !




All Articles