Передать аргументы командной строки в скрипт в оболочке V8 Javascript - PullRequest
2 голосов
/ 16 августа 2011

Я пытаюсь запустить JSLint через V8.

  • Я скачал и собрал оболочку V8, используя эти инструкции .
  • Интерактивная оболочка d8 работает, и передача файла в него запускает этот файл.

Теперь я хочу выполнить jslint.js и передать имя файла для его анализа.Я пробовал

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

Без сомнения, проблемные строки в конце jslint.js, который использует функцию Rhino readline() для получения аргументов командной строки.Кто-нибудь модифицировал этот скрипт для работы в V8 или есть общий способ передачи ему аргументов V8?

Обновление: Ответ Стива напомнил мне, что я нашел способ скомпилируйте JSLint в исполняемый файл так же, как это сделал Стив, но я надеялся на что-то более переносимое для других разработчиков.

Ответы [ 2 ]

3 голосов
/ 25 октября 2011

Оболочка d8 позволяет вам передавать аргументы в командной строке, предшествуя им '-'.То есть, в вашем случае:

  d8 jslint.js -- myfile.js

Everthing после '-' будет читаться как дословные строки, поэтому все остальные флаги должны идти до этого.Аргументы командной строки будут доступны для сценариев как глобальная переменная, называемая «arguments», содержащая массив строк.

(вместо «-» вы можете использовать синоним «--js-arguments»).

2 голосов
/ 25 августа 2011

Вы могли бы взглянуть на мою попытку запустить JSLint с использованием v8 на http://blog.stevenreid.co.uk/2011/06/27/jslint-command-line-tool-powered-by-v8/.

Приложение командной строки компилирует JSLint непосредственно в двоичный файл. Все параметры JSlint поддерживаются. Можно скопировать несколько исходных файлов, а также ввести их из стандартного ввода.

...