Skip to content

Using FuckingNode: stats

fuckingnode stats <project>

This is the simplest thing ever. Just run fuckingnode stats *, replacing * with the name of a project (from the package.json's "name" field) or the path to the project's root, and you will see two things.

Project outline

@zakahacecosas/fuckingnode@3.1.1 /home/zaka/Code/FuckingNode ยท deno runtime ยท deno pkg manager

Depends on 9 m*therf*ckers:
@std/datetime@^0.225.3 > jsr # Dependency
@std/fmt@^1.0.6 > jsr # Dependency
@std/fs@^1.0.15 > jsr # Dependency
...and 6 more.

> jsr # Dependency exists because

a) A Deno project can have > jsr or > npm dependencies b) Any JavaScript project can have # Dependencies, # Dev Dependencies, or # Build Dependencies

And that's it. We're thinking of what else we could show here that may interest you.

Here's where the command gets a bit useful. This is currently only supported for NodeJS.

Similarly to the Recommended Community Standards tab of a GitHub repository, this will check if all the recommended fields of a package.json file are fulfilled.

For example, a project with the following package.json:

{
    "name": "some-astro-website",
    "type": "module",
    "version": "0.1.0",
    "scripts": {
        "dev": "astro dev",
        "start": "astro dev",
        "build": "astro check && astro build",
        "preview": "astro preview",
        "astro": "astro"
    },
    "dependencies": {
        "@astrojs/check": "^0.9.4",
        "@astrojs/mdx": "^4.0.8",
        "@astrojs/vercel": "^8.0.7",
        "@vercel/speed-insights": "^1.2.0",
        "astro": "^5.3.0",
        "sharp": "^0.33.5",
        "typescript": "^5.7.3"
    },
}

will return this:

โŒ No license found. You should specify it!
โŒ No author found. Who made this 'great' code?
๐Ÿ˜ No contributors found. If none, that's fine, but if someone helps, mention them.
โŒ No description found. What does your code even do?
โŒ You didn't specify a repository, why?
โŒ You didn't specify where to report bugs. Don't be lazy and accept feedback!
โœ… This is an ESM project, lovely.

For everything to turn โœ… correct, we would need to either:

Add:

  • license
  • author
  • contributors
  • description
  • repository
  • bugs

Or:

Set private to true, so the project is considered not an npm package and thus package-related checks like repository are omitted.

This feature is still very basic to be honest. We'll improve it over time.


You've now learn how to... stat your project?

Next: Surrender - how to speed up a JavaScript's projects natural cycle.