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

resolve-mjs

v2.2.2

Published

Import ecmascript modules using legacy `require` resolution algorithm

Downloads

28

Readme

resolve-mjs

resolve-mjs is a Node.js loader module that allows you to use legacy resolve semantics when importing .mjs ECMAScript modules.

Motivation

Newer versions of Node.js offer native support for ECMAScript import/export loading semantics. This is fantastic, but the maintainers have decided not to support NODE_PATH as part of the resolution algorithm used to locate imported modules (there is most likely a good reason for this, but it is one that I am not aware of).

We use NODE_PATH liberally across our organization to keep our require references clean, so the fact that it's not supported by import has been an impediment to our adoption of native ECMAScript modules. Or at least it was, before we found out you can write custom loader hooks to resolve imports. Now we can have our local dependencies cake and import it too. 🍰

Usage

While ECMAScript modules are considered experimental, you'll need to use the --experimental-modules flag. Additionally, you must pass the --loader resolve-mjs option when running node.

Install It (globally, if you're into that)

npm install [-g] resolve-mjs

Use It

node --experimental-modules --loader resolve-mjs app/index.js

Protip If you install resolve-mjs globally, you can add --experimental-modules --loader resolve-mjs to the NODE_OPTIONS environment variable in order to use it without having to add the flags each time you run node

Behavior

resolve-mjs should not interfere with any import statements that already work with the current import implementation - it will first attempt to resolve the import using the default resolver. Only when that fails to return a valid module will it fallback to locating the module with require semantics.