2016-08-04 19 views
0

Brunchを使用してアプリケーションを作成するCLIツール(NPMのノードで)を作成しようとしています。インストールしないでnpmパッケージのバイナリを使用する方法

だから基本的には、予想される動作は、ユーザが自分のツールをインストールするには、次のように入力することである。

npm install -g my-cli-tool 

そして、myAppという名前のサブディレクトリ内に新しいブランチプロジェクトを作成するために、彼らはこれを実行します端末:

my-cli-tool myApp 

ブランチは、アプリケーション自体を作成する作業のほとんどを処理します。

ブランチプロジェクトを作成するには、ブランチプロジェクトをグローバルにインストールして(npm install -g brunch)、単にbrunch new myAppと入力するだけです。

バイナリを公開するNPMパッケージを作成するために必要なものは既にセットアップ済みですので、私は1つのスクリプトに減らします。

私がこれまで試してみましたが以下の通りです:

#! /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)をインストール、ですがpackage.jsonファイルと一緒に現在の作業ディレクトリ内node_modulesフォルダを作成します。 。

理想的には、myApp/という名前のフォルダ(これはBrunch自身で行われます)の作成を除いて、現在の作業ディレクトリを変更しないことをお勧めします。本質的に、私はBrunchを使用して、Brunchをインストールしたことの痕跡を持たずにアプリケーションを生成したいと思っています。

私はnpm packを見ましたが、私のユースケースにどのように適用するかはわかりません。どんな助けでも感謝します、ありがとう。

+0

brunchを 'my-cli-tool'の依存関係にするので、ユーザーがcliツールをインストールすると、ブランチもインストールされます。 –

答えて

2
  1. それはブランチにあなたがアプリケーションを作成するたびにインストールするにはクレイジーだ
  2. 誰もラッパーの周りにラッパーを必要としない
  3. ソリューション:your-awsesome-cli-toolの依存関係で入れブランチとは、あなたのパッケージディレクトリからそれを呼び出す
+0

あなたはとても正しいです。私はそれが私がこのスーパーシンプルなコンセプトを見落とす原因となった徹夜していたに違いないと思う。ありがとう。 – adrianmc

関連する問題