()

2016-10-07 1 views
0

、それは次のようになります可能性があります私のlibのユーザーは、NPMスクリプトに似たコマンド文字列を提供します。()

NPMスクリプトはので、私のlibに

scripts : { 
    'test': 'npm test' 
} 

package.jsonで、ユーザーが何かを提供可能性があるように見えるかもしれませんが、何かのように:

'watchProcess': { 
    'a' :{ 
    script: 'foo bar baz', 
    include: [], 
    exclude: [] 
    }, 
'b' :{ 
    script: 'node rolo cholo', 
    include: [], 
    exclude: [] 
    }, 

'c' :{ 
    script: 'java biz bang', 
    include: [], 
    exclude: [] 
    } 

} 

がそう私はに特別な何かをする必要がありますwatchProcess.a.script/watchProcess.b.script/watchProcess.c.script文字列を解析しますか? または単に空白で分割してトークン化してから、child_process.spawnに入れます。

答えて

1

あなたはキースクリプトで文字列を取り、それをトークン化することができます(あなたが言ったように)あなたは何もできません!

多分あなたは文字列の中から特定の文字を選び出したいと思うかもしれませんが、ほとんどの時間は必要ありません。

0

うん、これで私の簡単なテスト与えられ、次のようにすべてのことのように見えるが必要とされている:

だけのように見えるプレーンテキストで、最終的
const cp = require('child_process'); 

const execString = 'npm install --save suman'; 

const execStringArray = String(execString).split(/\s+/); <<< key part 
const executable = execStringArray.shift(); 

const child = cp.spawn(executable, execStringArray, {}); 

const child = cp.spawn('npm', ['install','--save-dev','suman'], {});