0.2.0 • Published 10 years ago

rwd v0.2.0

Weekly downloads
4
License
-
Repository
github
Last release
10 years ago

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.

0.2.0

10 years ago

0.1.0

11 years ago

0.0.1

11 years ago