Build a Chrome Extension With React & Webpack

Поделиться
HTML-код
  • Опубликовано: 17 ноя 2024

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

  • @sanujatharinda6525
    @sanujatharinda6525 2 года назад +12

    You explained 2 hours worth of content in just 17 minutes. Thank you very much...

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

    Criminally underrated. If you have the time you need to be the savior of coding tutorials on youtube

  • @dumitru12cosmin
    @dumitru12cosmin 2 года назад +9

    I loved how clear you explained all those concepts I spent hours trying to understand. Great job!

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

    The best video out there about this and the channel has only 1 video, insane.

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

    This video is the best among all other videos I have watched on this toping in RUclips. Please keep making these awesome videos and please please please continue this topic. 👏👏

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

      @@codifytools thank you so much you are the best. 😄😄😄

  • @TahaCrafter
    @TahaCrafter 2 года назад +4

    Thank you so much, very clear explanation!
    I can't believe you only have 80 subscribers, youtube algorithms are not fair, it should rank your videos much higher to get the number of subscribers that you actually deserve.

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

    Right on to the point. Please do more video like this. Your explanation is very clear. 👌

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

    Thank you for your tutorial!

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

    Thank you so much! I wasn't wanting it to end!!!!! thank you!!!!!!!!

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

    Great video. One thing tripped me up while setting up Webpack, at 12:20 you glossed over adding the line "const HtmlWebpackPlugin = require('html-webpack-plugin');" to the top of webpack.config.js. It took me a quick trip to stackoverflow to figure it out. :)

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

    Amazing tutorial. Answered all my questions. I especially love automating 'npm run build' on changes at the end. Thank you!!

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

    Underrated video, thank you so much.

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

    Awesome video, cleared all my doubts on react chrome extention. Great job!

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

    One the best tutorials I have seen. Thanks for sharing.

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

    Your tutorial helped a lot! Thank you for your videos!

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

    Amazing tutorial. Now I have to figure out how to use TypeScript in that project.

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

      @@codifytools I'll definitely check the blog post! Your explanation was one of the clearest I've ever seen/heard.

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

    this video was incredibly well made, thank you for this :D

  • @talatkuyuk6556
    @talatkuyuk6556 3 года назад +4

    Hi, you are awesome. You give very clear explanations. Hope you continue to make youtube tutorials about nodejs-react-chrome extension including script injection, service workers etc. Thank you very much again, I've subscribed, liked and get always notified.

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

    If the extension shows a blank page:
    Name the function in popup.jsx starting with an uppercase, for example: popup() is wrong but Popup() is right. I don't know why it doesn't let you use lowercase but this was the fix that solved my problem.
    Thanks for the video.

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

    Very clear and helpful info, thank you a lot)

  • @jiemi-wang
    @jiemi-wang 3 года назад +1

    It's a great video
    It's very helpfull, i am hoping more video about this topic

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

    Wow. I really never wanted it to end, well done!

  • @bharatkumar-be9ki
    @bharatkumar-be9ki Год назад

    Awesome explaination, really helpful.

  • @Krow-n3o
    @Krow-n3o 2 года назад +2

    remember to add in webpack.config.js the code below if creating other files named (jsx|ts|tsx), otherwise you will get import errors while building the code.
    resolve: {
    extensions: ['.js', '.jsx', '.ts', '.tsx'],
    },

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

    Loved how you explain step by step, thank you!

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

    this video is insane, extremely helpful, thankyou

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

    Perfectly explained, thanks!

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

    If you run into any issue with [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only file and data URLs are supported by the default, then upgrade your node version. I installed nvm and upgraded to 14

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

    Thanks man. This was really very helpful video.

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

    Thank you for an awesome video! I had some issues with my build command in package.json and had to add the following: "export NODE_OPTIONS=--openssl-legacy-provider;" so it looked like this: "build": "export NODE_OPTIONS=--openssl-legacy-provider; webpack --config webpack.prod.js". I did the same for my "dev" script. Looks like it's an issue with the latest version of Node. Hope this helps anyone who comes across this error when running npm run build command.

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

    Amazing tutorial from start to finish :) Well done!

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

    Hey, thank you for the video, but could you explain how to integrate ContentScript and BackgroundScript ? It is pointless without it!

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

    this is very helpful, thank you

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

    It's a great request.
    Create the chrome extension tutorials from start to end.
    How to access local storage of current web page?
    How to change data in current page?
    How to implement different functions of JavaScript as we do very easily for our web page?
    Content.js Background.js working of other parts.

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

      Check Google Chrome Documentations but you can declare ContentScript and BackgroundScript into the manifest.json. I don’t know if the location of the file is important as you can declare the path into the manifest.

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

      Ok my bad, go to 7:06!!

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

    can you please provide the link to open the extension in a new tab during dev
    ? its not working on mine

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

    REALLY outstanding. Thanks!

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

    Thank you for an informative video.
    Totally unrelated topic! May i know the VS Code plugin that you are using in this tutorial which autocompletes your code? especially at 12.22

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

    This is awesome.
    Would love to see some stuff surrounding fetching data from source has I'm having some trouble finding material to do this with mv2 on react for some reason.

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

      @@codifytools Turns out this is a bit tricker than I've thought but I'll most likely add what I've learned here so someone else can see.

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

    thanks a lot! very helpful

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

    I think I did something wrong, whenever I open a new tab, instead of the new tab itself, my extension page opens with the following error,
    "Your file couldn't be accessed It may have been moved, edited, or deleted. ERR_FILE_NOT_FOUND"...
    anyone else with this problem?

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

    Thanks man, really helpful.

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

      @@codifytools I have a question though regarding what you say at 6:40. I thought that the manifest will inject the background file anyways, so why would I need to define it in the webpack.config.js as an entry point? Also, if I define content script in the manifest that get injected on certain webpages, do I need to add them in the config aswell?

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

    I'm getting error :Uncaught EvalError: Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "script-src 'self'".

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

    thank you for your time and consideration great video

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

    hello everyone, i am currently working on an extension and i want to build the user interface of the extension in a modal/popup window that the user can move across the page and don't lose focus when the user clicks elsewhere

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

    How can we add content_script so we ca interact with web page
    Thanks for this great tutorial

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

    thanks for this tutorial

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

    I just skimmed through this. Does this include hot reloading, or do I have to manually reload the extension?
    You should make the text editor font bigger when you are recording videos.

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

    Thanks a lot! Great content.

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

    Hi, great video!
    One thing that would also be useful is to configure hot reloading, so we don't need to click the update button at chrome://extensions after every file changes. Is this possible with chrome extensions?

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

    YOU ARE DA BEST

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

    Greate tutorial! I tried to inject content script to gmail inbox but get an error => Uncaught Error: createRoot(...): Target container is not a DOM element. any solution?

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

    Thank you very much !!!

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

    Thank you very much sir

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

    Hi, thank you so much for this video! I'm trying to link an external CSS stylesheet to the jsx file but it doesn't seem to work, is there a way to do this and have the webpack configure the creation of the stylesheet and the import?

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

    I don't think HMR is supported here, can we trick it?

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

      @@codifytools I tried it in many way, seems like rract refresh thinks it is as production environment and doesn't estabilish the ws connection 🤔
      Maybe I'm wrong

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

    nice video

  • @Антошана
    @Антошана Год назад

    beautiful

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

    I prefer quasar with vuejs bex
    Greate ui components, utls, and services

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

    I want to be able to scrape html tables and download csv using chrome extensions, how do I develop that? I followed ur tutorial till here. I have an interview on same, please reply

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

      @@codifytools I am able to do it in Node JS, but I’m unable to integrate node js with extension

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

    Can you share what extension you use in vs code? The hint they provide is fantastic.

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

      @@codifytools As expected. :(

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

    I appreciate your effort but you forgot to mention an important step like configuring multiple entry points for content scripts.
    Also, if someone adds another entry point to this config, their entire JS will be bundled and linked with their popup.html (it must be configured in HtmlWebpackPlugin object with chunks). Also, stuff like css/sass, imgs, etc.
    I think that would be an important thing to mention if you already showed this entire process.
    Just a tip for your future videos. Cheers.

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

      @@codifytools Great man! Just a little constructive criticism, I am glad you understand. Looking forward to the video!

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

      @@codifytools Hey thank you so much for this video. Any updates on the video series?

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

      @@codifytools Got it, super content! Hope production goes well as this tutorial was incredible and I'm sure your series will help a lot of people!

  • @donmikkodanm.olmillo8154
    @donmikkodanm.olmillo8154 2 года назад

    Hi, I love your video and tutorial, would love to ask what's your extension on 4:00 where it is automatically filled up? thank you

    • @donmikkodanm.olmillo8154
      @donmikkodanm.olmillo8154 2 года назад

      @@codifytools Thank you so much for the responsive reply, I was gonna guess it's copilot but many devs are fighting whether it's great or not. Anyways I love your videos, hopefully you can make a series for beginners like me

    • @donmikkodanm.olmillo8154
      @donmikkodanm.olmillo8154 2 года назад

      @@codifytools Thank you!

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

    Hey there! Thanks a lot for this video. I'm having an issue and it's happening after dev and prod webpack setup.
    After running npm run build or dev, I'm having this error:
    Invalid configuration object. Webpack has been initialized using a configuration object that does not match the API schema.
    - configuration.node should be one of these:
    false | object { __dirname?, __filename?, global? }
    -> Include polyfills or mocks for various node stuff.
    if you have an answer, it'll be great.
    Thanks a lot!

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

      @@codifytools You would not believe this, I was typing "node" instead of "mode" all the time 😂
      Everything's working great, thanks a lot for this video!

    • @02_kdz
      @02_kdz Год назад

      @@koaladlt I was doing the exact same thing lol. thanks!

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

      @@02_kdz Things happens lol!

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

    Is there a way to write unit tests using Jest or something similiar???

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

      @@codifytools I encountered several problems with jest and similiar frameworks. It throws errors with inability to use import/require outside a module, cant get it working

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

    Amazing.

  • @user-pk1nw1is6c
    @user-pk1nw1is6c 2 года назад

    Super!

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

    Excelent.

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

    Broh you do you only have one video of coding put out more

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

    Source please

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

    Try to use a larger font size, please.
    57+ years old developer

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

    ผมรันไม่ได้ครับพี่ชาย

  • @aliraza.r10
    @aliraza.r10 2 года назад +2

    Hi, you are awesome, this video help me a lot thank you.
    just had issue in 9:30 that I solved.
    { test: /\.(sj|jsx)$/, } did not worked for me when the file is ( .js ), But when I changed it to { test: /\.js$|jsx/, } it was working.

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

      THANK YOU! I was wondering why my code wasn't working, this fixed it!

    • @aliraza.r10
      @aliraza.r10 2 года назад

      @@symbol767 😊😉

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

    Seems like there should be a way to do this with far less steps in the world of "productivity".