Я пытаюсь создать инструмент CLI (в узле, на NPM), который создает приложение, используя Brunch.Как использовать двоичный пакет npm без его установки
Так в основном, ожидаемое поведение является то, что пользователь будет вводить это установить мой инструмент:
npm install -g my-cli-tool
А затем, чтобы создать новый проект бранч в подкаталоге с именем myApp
, они будут работать в этом в их терминале:
my-cli-tool myApp
Бранч будет обрабатывать большую часть работы по созданию самого приложения.
Для справки вы можете создать проекты Бранч, установив Brunch глобально (npm install -g brunch
), а затем просто набрав brunch new myApp
.
Я уже установил необходимый материал для создания пакета NPM, который предоставляет двоичный файл, поэтому я просто уменьшу его до одного сценария.
То, что я пытался до сих пор является следующее:
#! /usr/bin/env node
var shell = require("shelljs");
if (!process.argv[2]) {
console.log('You need to supply a name for your app!');
console.log();
console.log('Try:');
console.log(' my-cli-tool <project-name>');
} else {
var appName = process.argv[2];
console.log('Your app is now being created...');
console.log('Installing Brunch...');
shell.exec('npm install --save brunch');
console.log('Creating app with Brunch...');
shell.exec('PATH=$(npm bin):$PATH brunch new ' + appName);
console.log('Success! Your app is done.');
}
Это работает, как ожидалось, но проблема, установка бранч (npm install --save brunch
) создаст папку node_modules
внутри текущей рабочей директории вместе с package.json
файлом ,
В идеале я хочу, чтобы текущий рабочий каталог был не тронут, за исключением создания папки с именем myApp/
(что делает сам Бранч). По сути, я хочу использовать Brunch для создания приложения без каких-либо следов установки самого Бранча.
Я взглянул на npm pack
, но я не уверен, как применить его к моему прецеденту. Любая помощь будет оценена, спасибо.
сделать бранч зависимым от «my-cli-tool», поэтому, когда пользователь установит ваш инструмент cli, также будет установлен бранч. –