Форум программистов, компьютерный форум, киберфорум
Node.js
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518

Программа на Node.js как консольная утилита с настройками

06.11.2016, 20:54. Показов 2843. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Гуру, подскажите подобное реально?

Не по теме:

Есть "Ok.bat"-файл (win) для архивации моих проектов в 7z. Достаточно запустить из папки проекта, как он "все сам проделает". Довольно сложный. Ищет "файлы-метки" в папке проекта, создает несколько шифрованных копий(с минутами и ежедневные с затиранием), учитывает игнорируемые файлы, проставляет версию проекту в зависимости от количества "ежедневных" архивов, показывает сколько все это занимает места, через cpp-утилиту считает сколько дней прошло с прошлой архивации, даже звук в конце отдельной программой издает...

Короче... этот бедлам из кучи утилит надоел! (после переноса на рабочий комп с домашнего и исправления ошибок там - надо все это в git положить и под Linux/Mac адаптировать)



хочу создать ОДИН скрипт/проект на ноде, который компилируясь даст мне консольную команду, которую можно вызвать из папки проекта (даже без параметров), а все остальное "он сам сделает"...

1) Знаю что нода дает возможность создавать "системные утилиты" через "--global install". Но пока находил лишь возможность делать это из "стандартных" модулей из удаленного репозитория. Можно ли и как сделать подобное из МОЕГО проекта?
есть "my/index.js" - как из него утилиту "my" создать?

2) Где можно хранить настройки для подобной "сборки"? Вкомпилировать в момент "установки"? Например путь к архиватору и "дефолтный пароль" для архивов. Может можно "скомпилированное" в отдельной папке хранить? Или прямо в папке проекта менять некий setup.ini? или прямо в отдельной папке ноды хранить?

наставьте на путь... заблудился в node-технологиях!

Добавлено через 1 час 52 минуты
...вот что значит правильно вопросы поставить...

Решение (вроде) нашел. ВОПРОС ЗАКРЫВАЮ!

1) да можно!
npm install -g "путь к папке моего проекта"
в package.json должно быть "bin": "index.js"

2) над этим еще думаю. Но если папка с проектом после компиляции не перемещается, то можно прямо в ней хранить все настройки... тем более через параметры командной строки могу получить [0]путь к ноде [1]путь к моему проекту
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.11.2016, 20:54
Ответы с готовыми решениями:

консольная утилита
Программа представляет собой консольную утилиту. Настройка работы программы осуществляется путем передачи аргументов в строке запуска....

BatchAccess: консольная утилита для управления базами MS Access
BatchAccess: консольная утилита для управления базами MS Access Скажите, кто-нибудь пользовался данной утилитой? Зачем она, если есть...

Есть готовая консольная программа. Как прикрутить к ней Qt-интерфейс?
есть готовая работающая программа на c++ , как сделать чтобы данные вводились с помощью интерфейса qt , обрабатывались программой , и...

2
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
06.11.2016, 23:05
Эммм, ну как бы изначально можно всё это делать так красиво и тд и тп. По сути тот же webpack именно на ноде написан, достаточно просто посмотреть как это работает.
На счёт аргументов... Есть process.argv - массив строковых аргументов. Так же есть разные модули для того чтобы читать параметры, переданные ноде, например optimist.
1
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
06.11.2016, 23:32  [ТС]
Лучший ответ Сообщение было отмечено Tester64 как решение

Решение

теоретически понимал что "скорее всего это можно", но примеров не находил...
Особенно тяжело "угадал" как "установить" папку вместо "имени пакета в репозитории".
Самое смешное что первые удачные запуски получились после просмотра исходников npm (лежат в папке ноды, в node_modules) - это:
1) обязательное начало js.файла с #!/usr/bin/env node (без этого даже console.log("hi") не работал)
2) и в json: "bin": "./bin/npm-cli.js"

параметры получил через
JavaScript
1
2
3
process.argv.forEach(function (val, index, array) {
  console.log(index + ': ' + val);
});
еще... может кому пригодится
1) параметры передаваемые в программу "смещены" (не как в ДОСе) - [0]путь к ноде [1]путь к моему проекту, а лишь потом идут параметры после названия "утилиты"
2) после "компиляции" исходники в открытом виде целиком переносятся вместе с папкой (и всем "мусором") в
c:\Users\Имя пользователя\AppData\Roaming\npm\node_mo dules\имя утилиты\..
изменив код ТАМ сразу меняешь и реакцию утилиты.
пере-"установка" утилиты долгое - несколько секунд, а заменить один лишь файл-почти мгновенно...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.11.2016, 23:32
Помогаю со студенческими работами здесь

Программа(консольная) работает и одновременно ждет данные от клавиатуры. Как?
Консольная программа. Например, рассмотрит игру "змейка". В этой игре одновременно змейка ползет и ждет данные от клавиатуры. Но если...

Qt + консольная программа
Написал консольную программу, теперь хочу подключить ее к другой программе на QT, но столкнулся с тем, что в QT видимо как то по своему...

Консольная программа
еще раз всем привет. есть некая java консольная программа, которая получает данные из некоторого потока, и записывает данные в файл. ...

Консольная программа
Здравствуйте... Я уже немного научился программировать на C++ и тут наткнулся на консольную программу где был создан вот такой...

Консольная программа...
Здравствуйте! Прошу помочь с написанием консольной программы, которая вводит с консоли значения элементов двумерного массива целых чисел...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru