Understanding the Complexity of Modern Web Dev Stack (Webpack, Babel, TypeScript, React)

Поделиться
HTML-код
  • Опубликовано: 7 апр 2021
  • A look back on ye old days, where we came from, and how we ended up in this mess. Few mistakes, can you really blame me? 😇 TIMESTAMPS:
    1:00 In the beginning
    3:00 JS all the things
    5:28 Babel
    9:00 Introducing Webpack
    14:20 Babel with Webpack
    16:00 React (no JSX)
    19:00 JSX all the things
    21:50 TypeScript and TSX
    24:17 Bundle all the things... CSS imports
    🐦 Twitter: / lachlan19900
    👉 Complete Vue.js 3 30% OFF!! www.udemy.com/course/complete...
    💯 My course "Typing the Test Suite" www.udemy.com/course/typing-t...
  • НаукаНаука

Комментарии • 154

  • @lotharmohlala851
    @lotharmohlala851 2 года назад +91

    This is absolutely brilliant. Attaching a storyline to this was genius. This is how everyone learns; through context and use cases. Keep to this style of tutorials and this channel will sky rocket. Well done 💯

    • @LachlanMiller
      @LachlanMiller  2 года назад +1

      Thanks Lothar!

    • @_SoundByte_
      @_SoundByte_ 8 месяцев назад

      History in tech is important. Someone needs to do a video of the history of the internet (from a network point of view)

  • @AkshyatChapagain
    @AkshyatChapagain 4 часа назад +1

    Just amazing, every new person getting into web dev should watch this video. I can't believe you don't have more subscribers.

  • @Speglritz
    @Speglritz 2 года назад +13

    We transpile typescript to javascript then transpile javascript to older versions of javasript for wider browser support and then the browers JIT compile the javascript it loads to run the actual code. Even without webpack, different loaders, webassembly and the other stuff going on it's complex enough.

  • @brentleemans
    @brentleemans 6 месяцев назад +6

    Amazing video! With every part you explained WHY something was needed. This is missing in most of explanation videos on the internet. Thank you!

  • @paperC_CSGO
    @paperC_CSGO 4 месяца назад +2

    The video I have been looking for as a junior developer - to actually try and understand the bigger picture and fundementals. Please make more of these type of videos! You are hitting a much neglected part of the web development RUclips tutorial/course/explainer videos market!

    • @LachlanMiller
      @LachlanMiller  4 месяца назад +1

      Thank you! I'l do my best, glad it helped you, good luck!!

  • @marianrys316
    @marianrys316 3 года назад +32

    Great stuff! Thank you !
    In less than 30 min you fast-forwarded me from the 90's to modern era :)

  • @pkproductions1623
    @pkproductions1623 Год назад +5

    This video is awesome. In just 25 minutes you explained the whole modern javascript paradox. How a simple button click in JavaScript is evolved to be so complex. Thanks a lot it made me understand concepts that are very confusing.

  • @johnphillips8600
    @johnphillips8600 2 года назад +14

    This is the best explanation I've come across... Most videos are too long and too minified.
    Thank you for this ❤️

  • @Usmankhaled
    @Usmankhaled 3 месяца назад +2

    Absolutely brilliant. Seems like you witnessed everything as if you yourself was a kernel routing and directing every piece to work together just like that :)

  • @vitaliyd23
    @vitaliyd23 17 дней назад

    What a gem! Love that you included the error solving parts and the "single take" nature of the video. Liked, subscribed, and added to a playlist)

  • @user-zw7go3we9f
    @user-zw7go3we9f 6 месяцев назад +1

    This video is really helpful to me. When I dive into Huge numbers of libraries from single page with HTML CSS JS. it really drive me crazy. But thank your sharing. I understand a lot and get a clearness feel.

  • @jfsimard2
    @jfsimard2 9 месяцев назад +1

    Rare you can have a history Today. Big picture is always forgotten making if difficult to get clarity. Thank you for taking the time to do it.

  •  9 месяцев назад

    I'm honestly impressed with how good this was to give and idea about how we ended up using all of these tools in the modern web development. Thanks for your effort!

  • @narayan1509
    @narayan1509 2 года назад +2

    One of the best video I come across while searching for basics

  • @uchihai_a_h4871
    @uchihai_a_h4871 7 месяцев назад +1

    now finally all the dots got connected... brilliant mate !

  • @johnas3
    @johnas3 Год назад +1

    Bro you are now my new history teacher. Great work and thanks for the explanation🔥

  • @abuzarbaig3116
    @abuzarbaig3116 11 месяцев назад

    Great & short Video that explains what's going behind the scenes with modern web dev, Thanks 😊

  • @rioredwards
    @rioredwards Месяц назад

    This was awesome! Thank you for making this!

  • @apereiracv
    @apereiracv Год назад

    Amazing explanation, love the approach and evolution of the code, great stuff

  • @deveshprasad6418
    @deveshprasad6418 Месяц назад

    This is amazing. You're a genius. You made it so easy to understand.

  • @siddharthnayak4448
    @siddharthnayak4448 Год назад

    Excellent video explaining the history and transition to modern js libraries.Superb!!!!!!

  • @universalkittii
    @universalkittii 2 года назад +1

    This was very helpful thank you for making this!

  • @andriopratama6587
    @andriopratama6587 2 года назад +1

    Awesome! Thank you for the explanation and case study

  • @rajeev2127
    @rajeev2127 11 месяцев назад

    You nailed it!!! Finally I understood, Thank you so much from the heart, you're awesome

  • @davevids95
    @davevids95 2 года назад +2

    This is the explanation I've been looking for!! Subscribed!

    • @LachlanMiller
      @LachlanMiller  2 года назад +1

      Thanks! I'll try to make more videos about tooling in the future.

  • @zalabhaskar9795
    @zalabhaskar9795 4 месяца назад

    You have nicely explained in simple way with good example. Thank you.😊

  • @michaelhashimoto1650
    @michaelhashimoto1650 10 месяцев назад +1

    This is amazing.. front end is so crazy…. Thanks for bridging the gap!

    • @LachlanMiller
      @LachlanMiller  10 месяцев назад +2

      Give m a like/sub, announcement soon but I'm going to be making a course/book going way deeper on frontend tooling!

  • @mmkvhornet7522
    @mmkvhornet7522 10 месяцев назад +1

    I like your methodology , it's a very great and enjoyable learning experience !

  • @XpressBits
    @XpressBits 4 месяца назад

    Best tutorial watched in the recent days.. Precise and no BS... you got a great teaching skills, mate! Please keep doing the videos..

  • @chubbycat9212
    @chubbycat9212 2 года назад +2

    This is the best explanation I've come across

  • @udonjijiwaiwai935
    @udonjijiwaiwai935 2 года назад

    This is great and very helpful! Thank you!

  • @reralt
    @reralt 4 месяца назад

    This was so good. All the confusion regarding modern web cleared in one video ! Thanks a lot.

  • @CyberCass2000
    @CyberCass2000 Год назад

    This is just amazing, hat off to you!

  • @isaacmoses3377
    @isaacmoses3377 8 месяцев назад +1

    Pure awesomeness 😍

  • @almuhanadal-nihmy7452
    @almuhanadal-nihmy7452 Год назад

    Great explanation. Thanks
    I hope you do more videos about tooling. It's really helpful

  • @okamianimes8190
    @okamianimes8190 6 месяцев назад +1

    this is just beautiful, i had a lot of troubles understanding what webpack, babel were, and where are they exactly used, but this video just puts everything together in a brilliant way, thank you for the video

    • @LachlanMiller
      @LachlanMiller  6 месяцев назад +1

      No problem, glad you found it useful!

  • @aashisrimal7379
    @aashisrimal7379 3 года назад +6

    Great video on how modern web development has evolved.

  • @needtubes121
    @needtubes121 Год назад

    thanks for explaining all this from basics.

  • @fogguy3838
    @fogguy3838 3 месяца назад +1

    exactly what I was looking for, Thanks, great job

  • @jimbrannlund4677
    @jimbrannlund4677 Год назад

    This was AWESOME! Thank you!

  • @jhonyortiz5
    @jhonyortiz5 Год назад

    This entertaining and very eye opening when it comes to the past couple decades of web development. I hate when people use simple examples that have been simplified so much that they don't represent reality anymore. But your example was as simple as it needed to be but no more. It's really cool to see how it all really works and how it came together.

  • @opsJson_
    @opsJson_ Год назад +2

    Congratulations from Brazil. content like this is very rare, i'm subscribing.

  • @shinobi1975
    @shinobi1975 Месяц назад

    Finally someone that explains the problem that is being solved by these stupid installs lol. 10/10 vid.

  • @webb-developer
    @webb-developer Год назад

    this is amazing . thank you

  • @gionatha3747
    @gionatha3747 6 месяцев назад +1

    Fantastic video!

  • @DjSeymur
    @DjSeymur Год назад +1

    Superb explanation! Thanks a lot for this 🙌

  • @slahomar1497
    @slahomar1497 9 месяцев назад

    that is the best video I watched in my life

  • @MoizAli-eh9gv
    @MoizAli-eh9gv 6 месяцев назад +1

    a beginner learning this. Honestly great video

  • @dipanshuikey6650
    @dipanshuikey6650 5 месяцев назад +1

    great video 🔥

  • @squarerootof2
    @squarerootof2 Год назад +1

    hilarious and brilliant!!!

  • @alextonev4145
    @alextonev4145 Год назад

    Simply amazing. Thank you so much.

  • @user-tt6nc6mo7k
    @user-tt6nc6mo7k 3 года назад +9

    This really confused me too when I started learning web development. Now I have a great resource to refer to other people thanks!
    On another note, I see you have a few videos on testing using Jest, Cypress, etc. I personally am quite new to testing I understand there are different types of tests like unit testing, integration testing and end to end tests. I know what each of them are but I do not understand how they all come together in one project? Would be great if you could do a similar overview type video on how all these are implemented in a production application.

    • @LachlanMiller
      @LachlanMiller  3 года назад +3

      Yeah this stuff is confusing - there is way more tools in the average project too, but this is the general idea.
      Sure, I will definitely do more content around all the different types of testing... great suggestion. One of my favorite topics.

  • @laithdrebaty6709
    @laithdrebaty6709 Год назад

    Great video, thanks a lot!

  • @makealemonade
    @makealemonade 3 месяца назад

    My brain is thanking you.

  • @thequang9234
    @thequang9234 9 месяцев назад +1

    with a bit of luck, this is one of the coolest video i've ever watched :)

    • @LachlanMiller
      @LachlanMiller  9 месяцев назад

      Thanks! What did you like about it?

  • @dimitriborgers9800
    @dimitriborgers9800 3 дня назад +1

    This is a phenomenal video, thank you!

  • @imheretohelp2075
    @imheretohelp2075 2 года назад

    very good content, pedagogically supreme

  • @michaelvigato3228
    @michaelvigato3228 3 года назад +12

    Man this content is plain and simply amazing

    • @LachlanMiller
      @LachlanMiller  3 года назад +2

      thanks for the praise Michael, I appreciate it. also, the comments help me know what kind of content people like to see.

  • @taaaaaaay
    @taaaaaaay 3 года назад +1

    Thanks for the 20 minute headache :)
    No but really, this made it so much easier to understand what tf is going on.

  • @kerimzunic
    @kerimzunic Месяц назад

    I'm glad this video exists

    • @LachlanMiller
      @LachlanMiller  Месяц назад

      thanks I am glad you exist and watched it!

  • @AiwwwA
    @AiwwwA 10 месяцев назад

    Best explanation

  • @rossli8621
    @rossli8621 7 месяцев назад

    This is treasure!

  • @edwinquinonespardo4768
    @edwinquinonespardo4768 Год назад +1

    Amazing

  • @learncodeinbangla9181
    @learncodeinbangla9181 2 года назад

    It's really awesome things to me. Thanks a lot.

  • @JosephLKausi
    @JosephLKausi Год назад

    Just awesome

  • @jasonadventure2265
    @jasonadventure2265 11 месяцев назад

    Impressive ❤

  • @shweta4911
    @shweta4911 2 года назад

    Great Content!!!!!!

  • @GoatCS
    @GoatCS 4 месяца назад +1

    This is why WordPress is so popular. Running SQL HTML PHP and sometimes JavaScript and you don't even know it.

  • @jpmohan96
    @jpmohan96 3 года назад +1

    Incredible 👌

  • @jordantseng8330
    @jordantseng8330 9 месяцев назад +1

    god tier explanation

  • @austincodes
    @austincodes Год назад +1

    And this is just the top of the iceberg

    • @LachlanMiller
      @LachlanMiller  Год назад +3

      Damn straight, below lies dragons
      Maybe I should make an iceberg video on JS tooling!

  • @bakaleisanich
    @bakaleisanich 2 года назад +1

    Thank you! More course React!!!

    • @LachlanMiller
      @LachlanMiller  2 года назад

      Main focus is around Vue, but definitely could look into some more generic tutorials on concepts that apply to both React and Vue.

  • @mxsniper223
    @mxsniper223 Месяц назад

    thanks' a lot man

  • @AnthonyObi-wr6ro
    @AnthonyObi-wr6ro Год назад

    All your tutorials are always fast pace that it becomes hard for one to follow your pace

  • @avimonnudash1762
    @avimonnudash1762 Месяц назад

    Beautiful

  • @ihateorangecat
    @ihateorangecat 4 месяца назад

    Thanks for this video. ❤🙏
    Please make update version too. 🙏❤️

    • @LachlanMiller
      @LachlanMiller  3 месяца назад

      Sure thing I’ll try and do it soon. This stuff changes way too fast.

  • @StandardLoop
    @StandardLoop Месяц назад

    Really great video

  • @roronoa_d_law1075
    @roronoa_d_law1075 Год назад

    10:37 I don't understand why webpack is needed here if the improvement is to export createElement and import it in index.js. It's impossible to to do this without webpack?

  • @aidanwelch4763
    @aidanwelch4763 3 месяца назад +1

    There's so much worse it can be with SASS, handlebars, WASM, and so much extra complexity you can add on top lol

  • @bhavyabansal1143
    @bhavyabansal1143 2 года назад +2

    I became your fan in just 26 minutes and 41 seconds....

    • @LachlanMiller
      @LachlanMiller  2 года назад +1

      Hey, thanks for the praise!
      Any other kind of videos you would like to see? Trying to find a good direction for my content and channel 🤔

    • @bhavyabansal1143
      @bhavyabansal1143 2 года назад +1

      @@LachlanMiller if you ask me, I will say that given there are lot of tools out there like your video has explained, it will be good if you can make individual in depth videos of each tool and explain different configurations and what they are used for. I am happy to help as I am also learning these things and there is lot to learn out there.

    • @bhavyabansal1143
      @bhavyabansal1143 2 года назад +1

      @@LachlanMiller just sent you request on LinkedIn. Let’s connect.

  • @slahomar1497
    @slahomar1497 9 месяцев назад

    in babel.config, how wepback knows the order to use ? in case of tsx, which loader is gonna run first ?

    • @LachlanMiller
      @LachlanMiller  9 месяцев назад

      It goes in the order of the array. I think it goes last to first (weirdly enough).

  • @NomanKhan-pi2dc
    @NomanKhan-pi2dc 11 месяцев назад

    When i see a guy using vim, I just assume that he is a godly tier developer. Once more I was proved right

  • @naveedalirehmani4135
    @naveedalirehmani4135 11 месяцев назад +1

    legacy code be like : Look what they need just to mimic a fraction of our power. 😃

  • @KousayJebir
    @KousayJebir 5 дней назад

    awesome video man ! i do have a quick question tho , when you reached the part of using react and imported React from 'react' what tool was responsible to resolve the location of 'react' or to be more precise the actual location of the file that contains the React object

    • @LachlanMiller
      @LachlanMiller  4 дня назад +1

      Whatever runtime you are using will resolve modules using its own pre-determined rules. In this video the runtime is Node.js. You can google "node.js module resolution algorithm" or read here. nodejs.org/api/modules.html#loading-from-node_modules-folders
      In Node.js if the import is not a relative path, it will look in `node_modules` and then find the `package.json` for the module. In there it looks at specific fields like "main", etc.

    • @KousayJebir
      @KousayJebir 2 часа назад

      @@LachlanMiller thank you very much

  • @kashnigahbaruda
    @kashnigahbaruda 3 года назад +2

    As a newbie this was great. Struggled today with some jest testing presets and had absolutely no idea what was going on. I think I solved it because the error went away but I am worried the test was just skipped. Luckily I have no idea how to check which tests was skipped or not so I can go to bed without worry.

    • @LachlanMiller
      @LachlanMiller  3 года назад

      Glad you got it working - skipping a test is never ideal, might be good to find out why it's failing lol. Sleep tight

    • @kashnigahbaruda
      @kashnigahbaruda 3 года назад

      @@LachlanMiller turns out it was marked with test.skip(...). All greens.

  • @oleksandraokhotnykova8672
    @oleksandraokhotnykova8672 Месяц назад

    "We're not sane, we're INSANE, we're modern web developers" LMAOOO

  • @oscardasilva971
    @oscardasilva971 2 года назад +1

    This is just one of the web development tutorials I have ever seen, Why don't everybody create tutorials like that?

    • @LachlanMiller
      @LachlanMiller  2 года назад +1

      Many people don't understand it all haha

  • @Manoj-qf6lq
    @Manoj-qf6lq Месяц назад

  • @RikThePixel
    @RikThePixel 2 года назад +2

    I would like to see how server-side JavaScript comes into play with this 😂

  • @longb1913
    @longb1913 2 года назад +3

    3k views wtf... u need to be recognised

  • @codybontecou
    @codybontecou 3 года назад +1

    If given the choice, would you support ES5? It seems a lot of this complexity comes from supporting old browsers.

    • @LachlanMiller
      @LachlanMiller  3 года назад +1

      Depends, last job I worked we had a lot of users on IE11 (hospitals) so we just used babel to target es5. Nowdays browsers can actually load es modules natively via , so depending on your project you might not even need webpack, just a simple typescript build that exports modules, but I think a pre-configured setup (vue cli, create react app) is probbly the way to go.

  • @dimitriborgers9800
    @dimitriborgers9800 2 дня назад

    One question: if webpack bundles everything (including third party modules) into bundle.js, doesn't that ever get too big for the browser? The Gatsby library has 1200+ modules; I would assume the bundle.js would be absolutely massive.

    • @LachlanMiller
      @LachlanMiller  2 дня назад

      You can load modules async, so the initial bundle isn't huge. But yes, some libs have really huge bundles - I do not think there is any upper limit, I have worked on apps with 20mb of JS. This takes a long time to parse in the browser. Things like gzip, minify, etc can make it a lot smaller.

  • @anudeepreddy1027
    @anudeepreddy1027 6 месяцев назад +2

    Bro casually flexing his VIM skills

    • @LachlanMiller
      @LachlanMiller  6 месяцев назад +1

      I'm very much an average Vim user - always learning new things!
      Although nowadays I'm using VS Code with the Vim plugin.

    • @LachlanMiller
      @LachlanMiller  6 месяцев назад +1

      Why? I am tired of configuring Vim!

  • @sangilyun234
    @sangilyun234 3 года назад +5

    25:25
    Can’t relate more

  • @Mari_Selalu_Berbuat_Kebaikan
    @Mari_Selalu_Berbuat_Kebaikan 2 месяца назад

    Let's always do alot of good

  • @susilthapa4367
    @susilthapa4367 4 месяца назад

    Great content! Thank you so much!

  • @fnfal113
    @fnfal113 10 месяцев назад +1

    welcome to js land where people over engineer stuffs for convenience

  • @Ari-lv8nc
    @Ari-lv8nc 2 месяца назад

    why god , why

  • @georgewinchester6403
    @georgewinchester6403 Год назад

    Why do we bother with ES5 when approximately 95% of web browsers understand ES6?

    • @LachlanMiller
      @LachlanMiller  Год назад +2

      Because 5% don't :P
      I don't bother with ES5 unless I know I need to support older browsers. Here are some use cases I've run into for ES5:
      - healthcare (often need to support IE11)
      - smart TV UIs (often using old versions of Chromium or WebKit)

  • @lamborghinicentenario2497
    @lamborghinicentenario2497 2 месяца назад

    Why is this so hard to follow

    • @LachlanMiller
      @LachlanMiller  2 месяца назад

      not sure, what part are you struggling with?