2017-04-25 9 views
0

自分のURLをプライベートにしたい。Webpackが環境変数に値を割り当てていない

私のWebpack.config.jsで私はいくつかの環境変数を宣言し、dotenv-webpackを必要としました。

plugins: [ 
    new webpack.EnvironmentPlugin([ 
    'NODE_ENV', 
    'MY_URL' 
    ]), 
    new Dotenv({ 
    path: './.env', // Path to .env file (this is the default) 
    safe: false // load .env.example (defaults to "false" which does not use dotenv-safe) 
    }) 
] 

は、その後、私は .envを作成し、 MY_URL=http://my.secret.url

を追加しました。しかし、私はprocess.env.MY_URLをログインしたときに、それは私がこの問題を解決するにはどうすればよいundefined

のですか?

答えて

2

私は自分のために働く方法を共有することができます。私は、config.jsのにすべての私の環境変数を移動し、package.jsonに私は私の現在の環境(ローカルまたはPROD)を設定し、私はnpm run localまたはnpm run prod

package.json

{ 
 
    "name": "workshop_butler_widget", 
 
    "version": "1.0.0", 
 
    "description": "Workshopbutler widget", 
 
    "author": "http://workshopbutler.com", 
 
    "license": "ISC", 
 
    "devDependencies": { 
 
    .... 
 
    }, 
 
    "scripts": { 
 
    "local": "NODE_ENV=local webpack-dev-server", 
 
    "prod": "NODE_ENV=prod webpack-dev-server" 
 
    } 
 
}

設定を使用することができます.jsファイル

module.exports = { 
 
    local: { 
 
    url: 'http://local' 
 
    }, 
 
    prod: { 
 
    url: 'http://prod' 
 
    } 
 
}

webpack.config.js

const configs = require('./config.js'); 
 
const env = process.env.NODE_ENV; 
 
const current = (env === "local")? configs.local: configs.prod; 
 

 

 
... 
 

 
plugins: [ 
 
    new webpack.DefinePlugin({ 
 
    'NODE_ENV': JSON.stringify(env), 
 
    'MY_URL': JSON.stringify(current.url) 
 
    }) 
 
]

か、 'fsの' NPMのパッケージを介してwebpack.config.jsに直接.envファイルを読むことができます

関連する問題