对于 Node.js,我想要 Ruby 中的 $PROGRAM_NAME 或 C-likes 中的 ARGV[0] 等价物。当我有一个看起来像这样的节点脚本时,
#!/usr/bin/env node
console.log(process.argv[0])
…我得到“节点”而不是保存代码的文件的名称。我该如何解决这个问题?
对于 Node.js,我想要 Ruby 中的 $PROGRAM_NAME 或 C-likes 中的 ARGV[0] 等价物。当我有一个看起来像这样的节点脚本时,
#!/usr/bin/env node
console.log(process.argv[0])
…我得到“节点”而不是保存代码的文件的名称。我该如何解决这个问题?
您可以使用它(如果从您的 main.js 文件中调用):
var path = require('path');
var programName = path.basename(__filename);
或者这个,任何地方:
var path = require('path');
var programName = path.basename(process.argv[1]);
使用__文件名?它返回当前正在执行的脚本。
http://nodejs.org/docs/latest/api/globals.html#globals_filename
要使用命令行选项字符串,请查看 Substack 的optimist模块。乐观主义者会让你的生活更轻松。
var inspect = require('eyespect').inspector();
var optimist = require('optimist')
var path = require('path');
var argv = optimist.argv
inspect(argv, 'argv')
var programName = path.basename(__filename);
inspect(programName, 'programName')
要安装所需的依赖项:
npm install -S eyespect optimist