前回の投稿した内容 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 プロパティが廃止されている