2017-03-29 2 views
1

Ich habe echte Probleme beim Einfügen der node_env var in meinen Code durch Webpack definePlugin und nach dem Lesen von zahlreichen Posts scheint nichts zu funktionieren. Ich habe das Gefühl, ich etwas fehlt ...Webpack definePlugin nicht setzen/lesen node_env Variable

So Config meine Produktion webpack ist -

// Config 
import path from 'path'; 
import webpack from 'webpack'; 
import config from './config'; 


/** 
* Webpack config for compiling the 
* React/Redux/ES6 scripts. 
* 
* ENV = production 
* 
* @type {Object} 
*/ 
module.exports = { 
    entry: path.resolve(__dirname, '../', config.assets.scripts.src_dir, config.assets.scripts.entry), 
    devtool: false, 
    output: { 
     path: path.resolve(__dirname, config.assets.scripts.dist_dir), 
     filename: config.assets.scripts.dist_min 
    }, 
    module: { 
     loaders: [ 
      { 
       test: /.js?$/, 
       loader: 'babel-loader?presets[]=react,presets[]=es2015,presets[]=stage-0', 
       exclude: /node_modules/ 
      }, 
      { 
       test: /\.json$/, 
       loader: 'json-loader' 
      } 
     ] 
    }, 
    plugins: [ 
     new webpack.DefinePlugin({ 
      'process.env': { 
       'NODE_ENV': JSON.stringify('production') 
      } 
     }), 
     new webpack.optimize.UglifyJsPlugin({}) 
    ] 
}; 

Ich habe versucht Alias ​​des für reagieren, reagieren-dom und reagieren-redux mit absolut ohne Erfolg einstellen React warnt mich immer noch, dass ich eine verkleinerte Version außerhalb von node_env = production verwende (Auch redux wirft mir immer noch diesen Fehler zu).

FYI, ich benutze Webpack Version 2.2.1.

Hat es etwas damit zu tun, dass der Babel-Loader in irgendeiner Weise in Konflikt steht? Wenn mir jemand in die richtige Richtung zeigen kann, wäre das großartig.

Antwort

2

Ändern Versuchen Sie, Ihre DefinePlugin für NODE_ENV zu diesem -

plugins: [ 
    new webpack.DefinePlugin({ 
     'process.env.NODE_ENV' : JSON.stringify('production') 
    }), 
    new webpack.optimize.UglifyJsPlugin({ 
     minimize : true, 
     compress : { 
      warnings : false 
     } 
    }) 
] 
+0

Dies funktionierte tatsächlich (oder zumindest glaube ich es tat, wie er den Fehler behoben zu haben scheint). Haben Sie irgendwelche Kenntnisse darüber, warum Sie die Objekteigenschaft so definieren müssen? Ist es ein Fehler mit Webpack? Dank – liamta

+0

@liamta Ich denke, für weitere Erläuterungen sollten Sie diesen Thread https://github.com/webpack/webpack/issues/868 lesen und wenn es für Sie funktioniert dann bitte akzeptieren Sie die Antwort. danke – WitVault

Verwandte Themen