2017-02-17 93 views
2

我受到這個警告好幾天,不知道爲什麼這個配置不起作用。我已經添加了DefinePlugin,但是,我仍然在收到「警告:看起來您正在使用React的開發版本的縮小副本」。如何避免反應縮小警告

有關這方面的任何線索?謝謝!

的package.json

{ 
    "name": "test", 
    "version": "1.0.0", 
    "description": "", 
    "main": "main.js", 
    "scripts": { 
    "release":"NODE_ENV=production webpack", 
    }, 
"dependencies": { 
    "react": "~15.0.1", 
    "react-addons-css-transition-group": "~15.0.1", 
    "react-bootstrap": "^0.29.5", 
    "react-dom": "~15.0.1", 
    "react-select-box": "^3.0.1" 
    }, 
"devDependencies": { 
    "babel-core": "^6.4.5", 
    "babel-loader": "^6.2.1", 
    "babel-preset-es2015": "^6.3.13", 
    "babel-preset-react": "^6.3.13", 
    "uglify-js-plugin": "0.0.6", 
    "webpack": "^2.2.0" 
    } 
} 

webpack.config.js

var path = require('path'); 
var webpack = require('webpack');  

module.exports = { 
    entry: { 
     Page: './page.js', 
    }, 
    output: { 
     path: '/', 
     filename: '[name].js' 
    }, 
    plugins: [ 
     new webpack.optimize.OccurrenceOrderPlugin(), 
     new webpack.NoEmitOnErrorsPlugin(), 
     new webpack.optimize.UglifyJsPlugin({ 
      compress: { 
       warnings: false 
      } 
     }), 
     new webpack.DefinePlugin({ 
      'process.env': { 
       NODE_ENV: JSON.stringify('production') 
      } 
     }) 
    ], 
    module: { 
     loaders: [ 
      { 
       test: /.jsx?$/, 
       loader: 'babel-loader', 
       exclude: /node_modules/, 
       query: { 
        presets: ['es2015', 'react'] 
       } 
      } 
     ] 
    } 
}; 
+2

從您的webpack配置中移除UglifyJsPlugin(用於調試)。 –

+0

當我移除'UglifyJsPlugin'時,警告沒有記錄到控制檯。它看起來像'DefinePlugin'只選擇性地更新'process.env.NODE_ENV'的實例 - 即打印警告的方法內部的條件更新爲'if(false)',但反應代碼中的條件仍然表示'process .env.NODE_ENV!=='production''。看起來'UglifyJsPlugin'移除了'if(false)'塊內的代碼,但反應代碼不變,然後'process.env.NODE'在運行時未定義 – supamanda

+0

僅限於'DefinePlugin':'var warning = emptyFunction ;如果(false){...'。使用'DefinePlugin'和'UglifyJsPlugin':'warning = emptyFunction;「production」!== process.env.NODE_ENV &&!function(){...'所以看起來好像'DefinePlugin'沒有運行或者運行'UglifyJsPlugin'之後...我嘗試在webpack配置中重新排序插件列表,並得到相同的結果 – supamanda

回答

0

請使用插件下面conifiguration

new webpack.optimize.DedupePlugin(), 
new webpack.optimize.OccurrenceOrderPlugin(), 
new webpack.optimize.UglifyJsPlugin({ 
     // Don't beautify output (enable for neater output) 
     beautify: false, 

     // Eliminate comments 
     comments: false, 

     // Compression specific options 
     compress: { 
     warnings: false, 

     // Drop `console` statements 
     drop_console: true 
     }, 
    }) 
+0

我不認爲這是一個理想的解決方案,因爲它只是刪除'console.log'的所有實例 – supamanda