Страницы

Поиск по вопросам

воскресенье, 29 декабря 2019 г.

Запуск программы Node.js из командной строки без указания node

#javascript #nodejs


Разрабатывается пакет для Node.js, в котором есть утилита для работы из командной
строки. Сейчас alacon.js представляет собой JavaScript программу, размещенную в корне
пакета. Для запуска этой утилиты приходится вводить слово node перед названием утилиты,
например:

node alacon 'SELECT * FROM CSV("mydata.csv") ORDER BY 2'


Что нужно настроить в package.json, какие файлы надо создать и как сделать так, чтобы:

1.Для запуска этой утилиты не нужно было указывать слово node:

alacon 'SELECT 1+1'


2.Можно было бы установить пакет глобально и использовать утилиту:

npm install -g alasql


То есть, сделать так же, как это сделано в Jison, Gulp и многих других Node.js пакетах
с утилитами?
    


Ответы

Ответ 1



Как правильно указали DAiMor и novus42, надо сделать ДВЕ вещи: package.json { "bin" : { "alacon" : "./bin/alacon.js" } } alacon.js #!/usr/bin/env node при выполнении npm install -g alasql бинарник ставится в директорию доступную через PATH. При этом номерация параметров не изменится. Нулевой будет node(.exe) а первый alacon.js.

Ответ 2



Документация по npm говорит, что для этого в package.json нужно добавить { "bin" : { "alacon" : "./bin/alacon.js" } }

Ответ 3



Cтандартный способ в Юниксах это прописать первой строкой: #!/usr/bin/env node Потом сделать: chmod +x И запускать соответственно: ./scriptname

Комментариев нет:

Отправить комментарий