首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >即使在使用DefinePlugin之后也反应错误

即使在使用DefinePlugin之后也反应错误
EN

Stack Overflow用户
提问于 2017-02-01 12:19:58
回答 2查看 464关注 0票数 0

我和Webpack一起使用了Reacti15.4.2和Redux3.6.0,这是我的webpack.config.js文件内容:(为了简洁起见,省略了一些代码)

代码语言:javascript
复制
const path = require('path');
const webpack = require('webpack');
const merge = require('webpack-merge');
const HTMLWebpackPlugin = require('html-webpack-plugin');
const CleanWebpackPlugin = require('clean-webpack-plugin');
const ExtractTextWebpackPlugin = require('extract-text-webpack-plugin');
const FaviconsWebpackPlugin = require('favicons-webpack-plugin');

const pkg = require('./package.json');

const TARGET = process.env.npm_lifecycle_event;
const PATHS = {
  src: path.join(__dirname, 'src/js'),
  dist: path.join(__dirname, 'dist')
};

process.env.BABEL_ENV = TARGET;

const common = {
  resolve: {
    extensions: ['', '.js', '.jsx']
  },
  entry: {
    app: PATHS.src
  },
  output: {
    path: PATHS.dist,
    publicPath: '/',
    filename: '[name].[hash].js'
  },
  module: {
    loaders: [
      { test: /\.jsx?$/, loaders: ['babel?cacheDirectory'], include: PATHS.src },
      { test: /\.scss$/, exclude: /node_modules/, loaders: ['style', 'css', 'sass'] },
      { test: /(\.ttf|\.woff2?|\.eot|\.svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/, exclude: /node_modules/, loader: 'url' },
      { test: /\.(jpe?g|png|gif|svg)$/i, exclude: /node_modules/, loader: 'url?limit=10000!img?progressive=true' },
      { test: /\.json/, loaders: ['json']}
    ]
  },
  plugins: [
    new HTMLWebpackPlugin({
      template: 'src/index.html',
      inject: 'body'
    })
  ]
};

if (TARGET === 'build') {
  module.exports = merge(common, {
    entry: {
      vendor: Object.keys(pkg.dependencies)
    },
    output: {
      path: PATHS.dist,
      filename: '[name].[chunkhash].js',
      chunkFilename: '[chunkhash].js'
    },
    module: {
      loaders: [
        { test: /\.css$/, loader: ExtractTextWebpackPlugin.extract('style', 'css'), include: PATHS.src }
      ]
    },
    plugins: [
      new webpack.DefinePlugin({
        'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'production')
      }),
      new webpack.optimize.UglifyJsPlugin({
        compress: {
          warnings: false
        }
      }),
      new CleanWebpackPlugin([PATHS.dist]),
      new ExtractTextWebpackPlugin('[name].[chunkhash].css'),
      new webpack.optimize.CommonsChunkPlugin({
        names: ['vendor', 'manifest']
      })
    ]
  });
}

运行npm run build会给出精简的代码。但它仍然给出了错误

Warning: It looks like you're using a minified copy of the development build of React. When deploying React apps to production, make sure to use the production build which skips development warnings and is faster. See https://facebook.github.io/react/docs/optimizing-performance.html#use-the-production-build for more details.

我也尝试重新排序的插件在构建目标,但它会产生同样的错误。

我在这里错过了什么?

P.S.Redux也给出了同样的缩小误差。

编辑

这是我的package.json构建脚本:

代码语言:javascript
复制
"scripts": {
  ...
  "build": "NODE_ENV=production webpack --progress"
  ...
}

编辑#2

这是从应用程序中输出到console.log语句的结果。

EN

回答 2

Stack Overflow用户

发布于 2017-02-01 12:26:33

您可以将此语法用于DefinePlugin。

代码语言:javascript
复制
new webpack.DefinePlugin({
  'process.env':{
    'NODE_ENV': JSON.stringify('production')
  }
}),
票数 0
EN

Stack Overflow用户

发布于 2017-02-02 17:07:36

我启用了源代码映射,可以看到它是我一直使用的一个包,它使用的是非标准的方式。因此,将NODE_ENV设置为“生产”对上述软件包没有任何影响。尽管如此,我的Webpack配置和我的构建脚本一直工作得很好。谢谢你们的帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41979680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档