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

is-global

v0.1.0

Published

Checks whether Node.js is running a global module

Downloads

104,750

Readme

is-global

Node.js project

Checks whether Node.js is running a global module

Version: 0.0.1

There are times you need to know whether Node.js is executing a global module, typically when you're writing a third-party module. For these cases this little module can help you.

On Linux the _ environment variable is compared with the process.execPath. Simple, quick and works in all situations because it doesn't depend on the current working directory.

On Windows there are two ways:

  • Synchronous

    The PATH environment variable is used. Node.js scripts running inside <npm_install_dir>/node_modules will always return true, e.g.:

    npm_install_dir = C:\Users\<user>\AppData\Roaming\npm
    node <npm_install_dir>\node_modules\myscript.js

    Therefore, don't run scripts inside the npm install directory or this module will always return true. No one does that so you can assume that on Windows platform it detects the global module execution correctly. To ensure that this module doesn't break your code you can put a big warning in your documentation.

  • Asynchronous

    The approach consists on reading the process.mainModule.paths[0] variable and search for the first package.json file, starting in the current path and ending at the / root's path. If the first package.json file contains a bin property then Node.js is running a global module. Works in all situations. If an I/O error is produced while reading the package.json file the function will silently return false.

This library provides both versions. The first is typically used when you are in a synchronous context, for example inside a constructor function. On Linux both versions use the same described approach, that is, doesn't perform any I/O call.

Installation

npm install is-global

Example

var isGlobal = require ("is-global");
//The result is cached, you don't need to save the result in your application

//Synchronous version
console.log (isGlobal ());

//Asynchronous version
isGlobal (console.log);