在V8 Javascript shell中传递命令行参数给脚本

Pass command-line arguments to script in V8 Javascript shell

本文关键字:命令行 参数 脚本 V8 Javascript shell      更新时间:2023-09-26

我正在尝试通过V8运行JSLint。

    我使用这些指令下载并构建了V8 shell。
  • 交互shell d8工作,并将文件传递给它执行该文件。

现在我想执行jslint.js并传递要解析的文件的名称给它。我试过了

d8 jslint.js myfile.js
d8 jslint.js < myfile.js
d8 jslint.js -- myfile.js

毫无疑问,jslint.js使用Rhino readline()函数来获取命令行参数。有没有人修改这个脚本在V8工作或有一个通用的方式让V8传递参数给它?

更新: Steve的回答提醒了我,我确实找到了一种将JSLint编译成可执行文件的方法,就像Steve所做的那样,但我希望其他开发人员能够更容易移植。

d8 shell允许您在命令行上通过在参数前面加上'——'来传递参数。例如,在您的情况下:

  d8 jslint.js -- myfile.js

'——'之后的所有内容将被读取为逐字字符串,因此所有其他标志必须放在它之前。命令行参数将作为一个全局变量"arguments"提供给脚本,该变量包含一个字符串数组。

(可以使用同义词'——js-arguments'代替'——')。

你可以看看我在http://blog.stevenreid.co.uk/2011/06/27/jslint-command-line-tool-powered-by-v8/上使用v8运行JSLint的尝试。

命令行应用程序将JSLint直接编译成二进制文件。支持所有JSlint选项。可以检查多个源文件以及来自stdin的输入。