2016-11-16 14 views
1

私はnpmコマンドで自分のコードを実行するために別のチャネルを持っています。 NPMスクリプトで2つのnpmコマンドで変数を定義する方法は?

、私は

"scripts": { 
    "start": "webpack-dev-server", 
    "start:channle_1": "CHANNEL=channe_1 webpack-dev-server", 
    "start:channle_2": "CHANNEL=channe_2 webpack-dev-server" 
} 

を書きますとwebpack.config.jsで、私はどのチャンネルにいる判断する変数を定義することができます。

const CHANNEL = process.env.CHANNEL || 'channe_1'; 

    console.log('===', process.env.CHANNEL); 

    webpackConfig.plugins.push(
    new webpack.DefinePlugin({ 
     CHANNEL: JSON.stringify(CHANNEL), 
    }) 
); 

だから、私のコードでは、私が使用することができますglable CHANNELがあります。

しかし、npmスクリプトに問題があります。私は別のサーバを必要とchannel.Iは&がNPMコマンドは、現在実行させることができ、しかし、私の状況では、変数CHANNELprocess.env.CHANNELに渡すことはできません、私が知っているように、それはこの

"scripts": { 
    "start": "webpack-dev-server", 
    "start:channle_1": "CHANNEL=channe_1 & npm run start", 
    "start:channle_2": "CHANNEL=channe_2 & npm run start" 
} 

が好きなことができると思います。

どうすればこの問題を解決できますか?あなたが&を取る場合

答えて

2

それが正常に動作する必要があります:あなたはそこに&を入れると、バックグラウンドで前の(空の)コマンドを実行しようとするだろう

"start:channle_1": "CHANNEL=channe_1 npm run start" 

。環境変数は、コマンドの前に空白で区切って設定することができます。

+1

また、スクリプトがウィンドウで機能するようにするには、https://github.com/kentcdodds/cross-envを使用する必要があります。 – RyanZim

関連する問題