2016-11-14 4 views
1

私のpackage.jsonでは、 "bar"に "foo"という設定変数を設定しました。その変数をNPMスクリプトで呼び出しています。 npm run testを実行NPM環境変数にアクセスできない

"config": { 
    "foo": "bar" 
    }, 
"scripts": { 
    "test": "echo $npm_package_config_foo" 
    } 

出力bar必要がありますが、それはしていません。

私は、環境変数にアクセスする際の一般的な問題があると考えています。たとえば、NPMスクリプトのuglifyjsを使用できますが、コマンドラインからは使用できません。

コマンドラインからprintenvを実行しても、期待するNPM変数が表示されません。

セットアップ:OSX 10.11.6、NPM 2.15.11、ノード6.2.0。

答えて

0

私のソリューション:

  1. 設定foo私のpackage.jsonからconfigオブジェクトを削除npm config set foo bar

  2. を使用。

  3. NPM scriptsプロパティで$npm_config_fooに変更$npm_package_config_foo

2

あなたが試みていることは間違っています:ノード環境変数は、システム全体ではなくノードプロセス内のプロセスグローバル変数を使用してのみアクセスできます。ですから、あなたがしなければならないことを達成するには、以下の変更を行う必要があります。 package.json

"config": { 
    "foo": "bar" 
    }, 
"scripts": { 
    "test": "node ./app.js" 
    } 

は、あなたがより多くの情報を見つけることができます

console.log(process.env.npm_package_config_foo); 

app.js here

関連する問題