#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
Комментариев нет:
Отправить комментарий