我刚刚为windows安装了node.js,让它运行真的很轻松。我想将它作为构建过程的一部分,将几个文件组合在一起,如下所示:
// settings
var FILE_ENCODING = 'utf-8',
EOL = '\n',
DIST_FILE_PATH = 'dist/myAwesomeScript.js';
// setup
var _fs = require('fs');
function concat(fileList, distPath) {
var out = fileList.map(function(filePath){
return _fs.readFileSync(filePath, FILE_ENCODING);
});
_fs.writeFileSync(distPath, out.join(EOL), FILE_ENCODING);
console.log(' '+ distPath +' built.');
}
concat([
'foo/bar.js',
'foo/lorem.js',
'foo/maecennas.js'
], DIST_FILE_PATH);
这真的很有魅力。但是,只有将我的所有脚本放入nodejs目录(即C:\ Program Files(x86)\ nodejs)并使用管理员权限启动cmd进程时,它才有效。
但我需要将我的项目文件放在另一个目录(比如D:\ git \ projectx \)中,并且希望能够运行:node.exe D:\ git \ projectx \ combine.js。不幸的是,这样的事情不起作用,因为node.exe将在它自己的目录中查找文件,即C:\ Program Files(x86)\ nodejs。必须要离开启动nodejs进程并告诉它使用另一个目录作为其工作目录,我错了吗?
更新
正如有人在IRC上指出的那样。我的问题的解决方案相当简单。只需cd
进入D:\git\projectx
,然后使用node.exe combine.js
。这使得脚本中的当前目录指向D:\git\projectx
然而,我接受卢克的答案,因为它似乎也是真的; - )
答案 0 :(得分:26)
答案 1 :(得分:5)
您始终可以使用__dirname
来表示您所在脚本的目录...
process.chdir(__dirname);
答案 2 :(得分:4)
process.chdir('D:\\git\\projectx')
答案 3 :(得分:0)
实际上它是
process.chdir('D:\\\git\\projectx')