We've had this conversation before, and we don't need to have it again. That said and for posterity, I'd like folks to know what tools they have available to them.
If you're writing a shell script and want to operate on the user's files (e.g. `myscript dir/file.txt`, use `process.cwd()`. That's both what it's for and what the user will typically expect. If you're operating on a file packaged into your module and want a path relative to the currently-running file rather than the user's current working directory, use `__dirname`. That's what _it's_ for. If you're operating on a file packaged into your module and you _really_ want to build that path relative to the file that was originally run (e.g. `node FILE`), use the longer `path.dirname(require.main.filename)`. That will give you the directory containing the file node was run against, and you can go from there. One final note: `require` needs none of this madness. It's always relative to the file doing the `require`-ing unless it's an absolute path like `/home/me/my/stuff.json`. - Schoon On Sun, Oct 13, 2013 at 6:34 AM, Gagle <[email protected]> wrote: > You can easily forget to prefix a path with __dirname, so months ago (in > fact, years ago) I began implementing a solution to this issue because I > don't like to write the magic __dirname variable in front of all the paths. > > This issue is related with the OS, not the programming language. There are > multiple solution like changing silently the cwd at runtime but this is not > the best way (as I was told). IMO the best way is to inform the user and > exit the process, so if the process doesn't exit then you can safely use > any path without __dirname. > > Simply put this line in the top of your main file: require("rwd") > > https://github.com/gagle/node-rwd > > -- > -- > Job Board: http://jobs.nodejs.org/ > Posting guidelines: > https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines > You received this message because you are subscribed to the Google > Groups "nodejs" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/nodejs?hl=en?hl=en > > --- > You received this message because you are subscribed to the Google Groups > "nodejs" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/groups/opt_out. > -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
