npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

Iโ€™ve always been into building performant and accessible sites, but lately Iโ€™ve been taking it extremely seriously. So much so that Iโ€™ve been building a tool to help me optimize and monitor the sites that I build to make sure that Iโ€™m making an attempt to offer the best experience to those who visit them. If youโ€™re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, ๐Ÿ‘‹, Iโ€™m Ryan Hefnerย  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If youโ€™re interested in other things Iโ€™m working on, follow me on Twitter or check out the open source projects Iโ€™ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soonโ€“ish.

Open Software & Tools

This site wouldnโ€™t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you ๐Ÿ™

ยฉ 2024 โ€“ย Pkg Stats / Ryan Hefner

vc-npm-resume

v0.1.0

Published

A workshop showing making your own `npx`-runnable npm package. ๐ŸŽ

Downloads

3

Readme

Virtual Coffee npm Resume

A workshop showing making your own npx-runnable npm package. ๐ŸŽ

We'll cover:

  1. (topic: node/npm) How to set up a very straightforward npm package (just a single .js file)
  2. (topic: core JS) Logging some things in the file
  3. (topic: node/npm) Adding a dependency on chalk to get nice colors
  4. (topic: core JS) Wrapping those logs with | etc. characters to make a table
  5. (delighter) Using arbitrary math to make a gradient with chalk

https://www.npmjs.com/package/vc-npm-resume

Steps we took

  1. Create an index.js file
  2. Add a console.log to that file
  3. node index.js: it runs!
    • node --watch index.js: it runs in watch mode
  4. npm init
    • Add a bin: "index.js"
    • If you're not Josh, change the name
  5. Add #!/usr/bin/env node ("hashbang comment) to the top of index.js
  6. Make an npm account (https://www.npmjs.com/signup)
  7. npm login
    • Verify with npm whoami
  8. npm publish
  9. npx vc-npm-resume@latest
  10. Make some changes to the file
  11. npm version patch
    • This creates a Git commit with a tag
    • This updates your package.json
  12. Fancify the table in index.js
  13. npm install chalk
  14. Add node_modules to gitignore
  15. Add "type": "module" to package.json
  16. Add import chalk from "chalk"
    • Fun fact: "ANSI Escape codes" is what they're called
    • https://stackoverflow.com/questions/4842424/list-of-ansi-color-escape-sequences
  17. npm install strip-ansi
  18. Use stripAnsi in index.js to ease line length computations with chalk

Debugging

403 Error in npm publish

You do not have permission to publish "vc-npm-resume". Are you logged in as the correct user?

Change the name in your package.json.

You cannot publish over the previously published versions

Try changing the version in package.json.

Otherwise, try npm login to make sure you're logged in.

npm ERR! could not determine executable to run

Add a bin entry in package.json. And don't feel to bad about it, I totally forgot during the workshop ๐Ÿ˜‰.

Cannot use import statement outside a module

Either:

  • Add "type": "module" to your package.json
  • Rename the file to .mjs

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules

Error [ERR_REQUIRE_ESM]: require() of ES Module...

Switch from CJS (require) to ESM (import)

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules