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

rwd

v0.2.0

Published

Warns if the process has been started with the wrong cwd

Downloads

6

Readme

rwd

Node.js project

Changes the cwd to the real working directory

Version: 0.0.1

rwd means real working directory.
Global modules don't need the rwd module.

Did you know why the people prefix __dirname before a path?

var fs = require ("fs");
fs.existsSync (__dirname + "/file");

It's because the process.cwd() function returns the shell's current working directory instead of the directory where lives the main script of your application.

Look at this example:

$ pwd
/home/user1
$ mkdir dir
$ cat > dir/app.js
console.log (process.cwd ());
$ node dir/app.js
/home/user1

You probably expect the path /home/user1/dir. If you execute the main script with a relative path like the above example, very bad things could happen and nearly impossible to detect why your code is not working as expected.

The following example illustrates a very ingenuous script, but depending on how you execute it very dangerous things will happen:

//app.js
var fs = require ("fs");
if (fs.existsSync ("settings.json")){
	doSomethingUseful ();
}else{
	//Warning!!
	saveToDatabaseDefaultSettings ();
}
# Warning!! "settings.json" doesn't exist in ".".
node app/app.js

In order to fix this issue simply require the rwd module. I recommend to put the require in the very first line of your main script:

//app.js
require ("rwd");

Installation

npm install rwd

Functions


rwd() : String

Simply requiring the module the cwd will be fixed but you can also get at any time the relative path between the cwd and the rwd.

var rel = require ("rwd")();

On global installed modules it returns null.