normalian blog

Let's talk about Microsoft Azure, ASP.NET and Java!

Node.js のライブラリ読み込みについてのTIPS その2

前回の投稿した内容 id:waritohutsu:20110821:1313947003 から、 node.exe のバージョンアップがあったようだ。Windows版のnode.exeにおいて、NODE_PATHの区切り文字が”:”でUNIXライクとなっていたものが修正されたようだ。実際にgithubにて議論されている。 NODE_PATH parses on ':' instead of ';'

変更内容を確認するため、「C:\node\lib\sax.js」を配置し、以下のソースコードを実行した。

var sax = require('sax');

console.log("------------------process.env.NODE_PATH----------");
console.log(process.env.NODE_PATH);

console.log("------------------require.paths------------------");
console.log(require.paths);
  • コマンド
C:\my_program\JavaScript\Node.js>set NODE_PATH=.;c:\\node\\lib
C:\my_program\JavaScript\Node.js>node.exe example_path.js
------------------process.env.NODE_PATH----------
.;c:\\node\\lib
------------------require.paths------------------

node.js:205
        throw e; // process.nextTick error, or 'error' event on first tick
              ^
Error: require.paths is removed. Use node_modules folders, or the NODE_PATH environment variable instead.
    at Function.<anonymous> (module.js:360:11)
    at Object.<anonymous> (C:\my_program\JavaScript\Node.js\example_path.js:7:20)
    at Module._compile (module.js:416:26)
    at Object..js (module.js:434:10)
    at Module.load (module.js:335:31)
    at Function._load (module.js:294:12)
    at Array.<anonymous> (module.js:454:10)
    at EventEmitter._tickCallback (node.js:197:26)

コードの実行から以下のことがわかった。

  • require('sax') が実行されているので、区切り文字が ; となっている
  • require.paths プロパティが廃止されている