2016-08-04 2 views
0

Я пытаюсь создать инструмент 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, но я не уверен, как применить его к моему прецеденту. Любая помощь будет оценена, спасибо.

+0

сделать бранч зависимым от «my-cli-tool», поэтому, когда пользователь установит ваш инструмент cli, также будет установлен бранч. –

ответ

2
  1. Это безумие установить БРАНЧ каждый раз, когда вы создаете приложение
  2. Никто не нуждается в обертку вокруг обертки
  3. Решение: Положите бранч в зависимости от your-awsesome-cli-tool и вызовите его из каталога пакета
+0

Вы очень верны. Я подозреваю, что он, должно быть, не спал всю ночь, из-за чего я забыл эту сверхпростую концепцию. Благодарю. – adrianmc

Смежные вопросы