2016-08-04 97 views
0

我正在嘗試使用Brunch創建一個使用Brunch創建應用程序的CLI工具(在Node中,位於NPM上)。如何在不安裝它的情況下使用npm包二進制文件

所以基本上,預期的行爲是用戶將鍵入此安裝我的工具:

npm install -g my-cli-tool 

,然後到名爲myApp子目錄中創建一個新的早午餐的項目,他們將運行此在他們的終端:

my-cli-tool myApp 

Brunch將處理創建應用程序本身的大部分工作。

僅供參考,您可以通過全局安裝Brunch(npm install -g brunch)然後只需輸入brunch new myApp來創建Brunch項目。

我已經設置了製作一個公開二進制文件的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)將與package.json文件一起創建當前工作目錄裏面node_modules文件夾。

理想情況下,我希望除了創建一個名爲myApp/(由Brunch自己完成)的文件夾以外,還不會觸及當前的工作目錄。實質上,我想使用Brunch來生成應用程序,而沒有任何已安裝Brunch本身的痕跡。我看過npm pack但我不確定如何將它應用到我的用例。任何幫助將不勝感激,謝謝。

+0

使brunch成爲'my-cli-tool'的依賴項,所以當用戶安裝你的cli工具時,brunch也會被安裝。 –

回答

2
  1. 這是瘋了,每次創建一個應用程序時安裝的早午餐
  2. 沒有人需要圍繞包裝的包裝
  3. 解決方案:在your-awsesome-cli-tool依賴把早午餐,並從包目錄稱之爲
+0

你是非常正確的。我懷疑它一直熬夜,導致我忽略了這個超級簡單的概念。謝謝。 – adrianmc

相關問題