Only 39% of the functions in node_modules are unique in the default Angular project created by ng new my-app. I think the developers of open source solve problems in the same ways, because they study the same algorithms. Well, why be honest, they copy the popular solutions from StackOverflow also.  If you want to compare functions in Javascript, then just convert them to string form: It is necessary to bring them to the same form using the UglifyJs library. UglifyJs will minimizes functions, remove unnecessary strings, and make simple calculations. For this I used the Esprima library. We parse the file and walk an AST tree. I think that it would be possible only with Uglifyjs, but something was wrong and I was too lazy to figure it out. Listing of the file from which we will extract functions: Note that some of the expressions are calculated, that's comfortable for function comparing. The list of the extracted functions: Full script can be found here So, we have to create a project using @angular/cli: ng new my-app and run our script to parse node_modules. It can take a lot of time. The package-lock.json here The node_modules folder contains 26982 * .js files: Number of functions found: 338230 Including unique: 130886 Whence it follows that 130886/338230 * 100% = 39% of the functions are really unique, and the rest are duplicates of existing ones. You can download the csv file for self-checking here. Function with the largest number of duplicates. 285d00ca29fcc46aa113c7aefc63827d, 2730 identical cf6a0564f1128496d1e4706f302787d6, 1871 identical, function names usually: __export 12f746f2689073d5c949998e0216f68a, 1174 identical, function names_interopRequireDefault и __importDefault 7d1e7aad635be0f7382696c4f846beae, 772 identical c2da306af9b041ba213e3b189699d45c, 699 identical c41eb44114860f3aa1e9fa79c779e02f, 697 identical, functions name: __ 5911b29c89fa44f28ce030aa5e433327, 691 identical 05c2b9b254be7e4b8460274c1353b5ad, 653 identical fcaede1b9e574664c893e75ee7dc1d8b, 652 identical e743dd760a03449be792c00e65154a48, 635 identical 777c390d3cc4663f8ebe4933e5c33e9d, 441 identical, function names usually: Rule, AsapScheduler, ComplexOuterSubscriber и другие 27628ad740cff22386b0ff029e844e85, 385 identical, function names usually: identity, forwardResolution и тд f6822db5c8812f4b09ab142afe908cda, 375 identical d98a03a472615305b012eceb3e9947d5, 330 identical 4728096fca2b3575800dafbdebf4276a, 324 identical 7b769d3e4ba438fc53b42ad8bece86ba, 289 identical, function names:plural 7d6f69751712ef9fa94238b38120adc6, 255 identical b7081aad7510b0993fcb57bfb95c5c2c, 250 identical d665499155e104f749bf3a67caed576a, 250 identical 99fa7dfce87269a564fc848a7f7515b9, 255 identical Nothing really interesting. The Webpack works efficiently. 95% functions are unique of the 1282 used. Here are top five functions that have duplicates: I also checked React. I put the comparison in the table below: You can download the csv file for self-checking here. The react project was generated by create-react-app my-app. The files package.json and yarn.lock are here. 12f746f2689073d5c949998e0216f68a, 1377 identical, function names usually: _interopRequireDefault 285d00ca29fcc46aa113c7aefc63827d, 1243 identical 3f993321f73e83f277c20c178e5587b9, 989 identical 54782ec6cef850906484808b86946b33, 299 identical 7d1e7aad635be0f7382696c4f846beae, 278 identical, function names: emptyFunction, Generator d11004e998280b565ad084b0ad5ca214, 239 identical a02c66d8928b3353552e4804c6714326, 237 identical, function names: _getRequireWildcardCache 79e9bd3cdf15cf0af97f73ccaed50fa0, 231 identical, function names _interopRequireWildcard 7d6f69751712ef9fa94238b38120adc6, 189 identical b8dd34af96b042c23a4be7f82c881fe4, 176 identical 863a48e36413feba8bb299623dbc9b20, 174 identical 2482d2afd404031c67adb9cbc012768b, 174 identical 4728096fca2b3575800dafbdebf4276a, 170 identical bf8b05684375b26205e50fa27317057e, 157 identical fd114ee6b71ee06738b5b547b00e8102, 156 identical df1c43e5a72e92d11bdefcead13a5e14, 156 identical 094afc30995ff28993ec5326e8b3c4d4, 156 identical 042490db7093660e74a762447f64f950, 156 identical 5c5979ec3533f13b22153de05ffc64d5, 154 identical 50645492c50621c0847c4ebd1fdd65cd, 154 identical The list is long Perhaps this little research will give someone thoughts about refactoring. Or changing the programming approach. It is good that people use some common approaches and patterns for programming. It's bad that there is a lot of copy-paste. Used scripts can be found on GitHub Разработчик