Publish a Vue Component to NPM // Vite and Vue 3

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

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

  • @MrDaskaF
    @MrDaskaF 2 года назад +29

    About the 2 min mark, I think you missed that you have to add the file name to the template literal on line 14: fileName: (format) => `lv-button.${format}.js` . Did my head in for a bit, hope it helps someone else.

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

      You just actually did! Thank you man

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

      i think that it's actually better to NOT include the name of the component in those filenames, it makes the package,json easier to reuse as you don't have to specify it

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

      why? he didn't talk much why we need the fileName field either.

  • @RodrigoDAgostino
    @RodrigoDAgostino 2 года назад +7

    Really concise and comprehensive guide :) You’re bringing up so many new things I’d like to try, but I still can’t find the time to do so xP Thank you!

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

      thanks as always!

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

    One of best best starter tutorials I have seen so far.

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

    6 minutes for the whole process! Perfect! Thanks!

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

    This was a fantastic video that help me connect quite a few vite and package.json properties and what they're actually for.

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

    I’ve actually been wanting to see a quick run through of this exact thing. This is awesome, thanks

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

      glad to see it was a timely video!

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

    Know what I like about these videos? They’re always extremely USEFUL. And reflect what I actually want to learn! Speaking of “useful” how about a video on the VueUse library? ;}

  • @duketranslucent3rd
    @duketranslucent3rd Год назад +8

    Thanks fo sharing. However, this guide has a lot of issues, at least based on my experience.
    1. You don't specify that to use `path` in vite.config.js, you must first require() it
    2. You also don't specify that to require path, you need to first disable the default option of type=module in the package.json generated by `npm init vite`
    3. When you say run `vite build`, you actually mean run the *script* command in the package.json which runs `vite build`, i.e. `npm run build`. Running the former will error.
    4. It's not clear what should go into styles.css, or whether this should be explicitly created.
    5. When I build, I end up with .mjs and .umd.js files, but not an .es.js file
    6. Not sure if this is significant, but when you test this tutorial on NPM's runkit, it throws an error.
    All in all, when I link my package to another project and then try to use it, it says " The package may have incorrect main/module/exports specified in its package.json.".

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

      This was the comment I have been looking for.

    • @lmartinez2205
      @lmartinez2205 5 месяцев назад

      Any fix?

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

      Great help! Not even Copilot could fix this, thx.

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

    This video made this be easy peasy. Thanks!
    I have just one question. Is it possible include our css directly in the component, without need import the style in your main project? I have I problem when try run my demo project, v-for from my plugin component doesnt work when I run build command.

  • @sanusivictorolajuwon514
    @sanusivictorolajuwon514 Год назад +4

    Hi LearnVue, this is a very good tutorial. Thanks for sharing. My question is that how I add typescript support to my published package so that people can get props auto-completion when they use it. Thanks.

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

    hello, do you have any repository with this project? it would be very helpful

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

    Just in time 😍 I was looking for a way to create package with Vite and Vue 3, but had to stick with vue-sfc-rollup due to lack of information out there. What do you think about vue-sfc-rollup, btw?

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

    Great tutorial, but how to use our library in nuxt 3 project?

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

    Great tutorial, one point that I had to change, when|after following it, to make it work:
    At 1:52 fileName(format) => `${format}.js` is incomplete, as the it also needs the name.
    I did fileName (format) {return `${this.name}.${format}.js`}

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

    Exactly the video I needed, at the right time ! Thanks 😊

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

    Thank you for making the video on this topic, I have create custom component with primevue and primevue.config is not loaded. can you please help me on it?

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

    this exactly what i searching for ❤

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

    Surprisingly great tutorial, thanks

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

    Thanks a lot ! Also looking for that typescript support :D

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

    Great content. Will watch your other videos. Keep the good work.

  • @leonardssh
    @leonardssh 2 года назад +8

    I see that your videos look a lot like the ones made by Jeff (from @Fireship), and I like that, keep it up! l🥰

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

      love those videos and have a similar goal of not creating super long videos but instead get you all the essential info as fast as possible!

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

      @@LearnVue you’re doing a great job living up to your goal my friend

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

    Thank you so much!!!!! And `npm link`, AWESOME!!!!

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

    Great video! This example is for one component, but how do you add several components with modular import?

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

      That's a question that someone solved on the GH for this, so I'd recommend giving it a read github.com/LearnVueCo/tutorial-code/issues/1
      The tl;dr is to replace the Vue plugin with imports/exports of each component
      import LearnVueButton from './components/LearnVueButton.vue';
      export { LearnVueButton };

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

    This is GREAT! One thing I really want to know is, I made a vue-ts project and want the typings (like my props) to be added in the final dist folder. Any idea how I can achieve that?

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

      Use @rollup/plugin-typescript

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

    Hi, great video! i have a question. I made a vite plugin for vue and tested in some projects with npm link before publish. and it worked pretty well with vite, Quasar Framework(with vite). But when I tried to install them to VueCli or Quasar Framework (with webpack), they did work but disabled the HMR. which made the reactive data from the plugin didn't shown unless a force update... Is it possible to make my vite plugin work in webpack environment? or i should try doing the same plugin somehow in webpack as well??

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

    is importing css inside app.vue necessary? can we do it automatically?

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

    But let's say i make a relatively big library, won't the .js file be bloated? How can i separate various components in different js files?

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

    how do you feel about single components vs a monorepo for components

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

    how can we add iife or unpkg here as output in build

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

    Woah i just hoping you create a library tutorial and its really happen. 😲

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

      👀 glad to hear

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

    can you make an example but using typescript pls :)

  • @Santoshkumar-bb6jy
    @Santoshkumar-bb6jy 2 года назад

    hi, a nice video liked the way you explained. Have no issues with the build using vite, but when using on a vue project am getting the following error, any idea on how to resolve.........Uncaught TypeError: Cannot read properties of null (reading 'isCE')

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

      It has to do with Vite bundling Vue into the library - I'm facing the same problem

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

    ok now again for a ts lib?

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

    Hi LearnVue, how can we make this compatible with a Nuxt 3 app?

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

    Thank you!!!🙇🏾‍♂

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

    Please make this video with Nuxt3

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

    And if you do not wish for it to install globally once you have imported it, and just use it standalone (but keep the option to have it install globally by default)? how would one do that?

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

    is this used to do microfrontend architecture?

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

    will this component work with vue 2 and vue class components?

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

    How I can create NPM library using Vue2 without Vite?

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

    apt!!!👏

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

    Can you give the whole code, please?

  • @MrT-tn4qe
    @MrT-tn4qe 11 месяцев назад

    path is undefined, you are missing something from your code

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

    Anyone else having issues rolling the lv-button? I tried today and got this error
    vite v3.0.2 building for production...
    ✓ 1 modules transformed.
    [vite:build-import-analysis] Parse error @:5:12
    file: C:/Users/Michael/Desktop/vite-project/src/components/LearnVueButton.vue:5:11
    3:
    4:
    5:
    ^
    6:
    7:
    error during build:
    Error: Parse error @:5:12
    at parse$b (file:///C:/Users/Michael/Desktop/vite-project/node_modules/vite/dist/node/chunks/dep-1513d487.js:33570:355)
    at Object.transform (file:///C:/Users/Michael/Desktop/vite-project/node_modules/vite/dist/node/chunks/dep-1513d487.js:40656:27)