SuperGeekery: A blog probably of interest only to nerds by John F Morton.

A blog prob­a­bly of inter­est only to nerds by John F Mor­ton.

Make Javascript module creation easier with Vite and automated GitHub Pages and npm publishing

Mak­ing a share” but­ton on a web­page is some­thing that I repeat­ed­ly do. I recent­ly decid­ed to pack­age up this code into an eas­i­ly re-usable Javascript mod­ule. You can check out the Pro­gres­sive Share But­ton on npm if you’re inter­est­ed in the end result.

The process of cre­at­ing that mod­ule made me real­ize I did­n’t have a good work­flow to cre­ate a Javascript mod­ule. As I built the Pro­gres­sive Share But­ton, I built a sec­ond project to turn my work­flow into a tem­plate that I could reuse. Allow me to intro­duce the poor­ly named Vite Mod­ule Builder with GitHub Pages & npm pub­lish­ing tem­plate. (Maybe Chat­G­PT could have come up with a list of bet­ter names for me.)

The GitHub repo has an exten­sive REAME​.md file that describes the work­flow. I’ll sum­ma­rize it in a few bul­let points.

What the workflow template does:

  • Pro­vides a devel­op­ment envi­ron­ment using Vite
  • It uses Type­script for the devel­op­ment of your mod­ule
  • The build process cre­ates both ECMAScript and Com­mon­JS ver­sions of your final mod­ule
  • The build process also cre­ates a type def­i­n­i­tion file for your mod­ule
  • The demo HTML page used dur­ing devel­op­ment can be pub­lished to GitHub pages with built-in GitHub Actions
  • The tem­plate includes a sec­ond GitHub Action that will pub­lish your mod­ule to NPM when you change the ver­sion num­ber in the package.json file and push your changes to GitHub
  • There is a Node script includ­ed in the mod­ule that will cus­tomize the tem­plate files when a new repo is cre­at­ed.

A video walk-thru of the workflow

The workflow’s doc­u­men­ta­tion goes into detail about each item. If you’re a visu­al learn­er, I’ve also made a video walk­ing through the process of set­ting up a brand-new mod­ule repo. I hope you find this use­ful. Feed­back is wel­come.


controls = 1 to show player controls color = This parameter specifies the color that will be used in the player's video progress bar to highlight the amount of the video that the viewer has already seen. Valid parameter values are red and white, and, by default, the player uses the color red in the video progress bar. See the YouTube API blog for more information about color options. Note: Setting the color parameter to white will disable the modestbranding option.