繁体   English   中英

反应Webpack生产错误

[英]React Webpack Production errors

我正在尝试为React(15.3.2)应用设置webpack(1.13.3)配置,我想在我的生产版本中使用React的生产版本。 我在Windows上。

我正在使用它(当您搜索时,它在网上到处都是):

new webpack.ProvidePlugin({
  'process.env': {
    'NODE_ENV': JSON.stringify('production')
  }
})

但是,一旦添加此代码并运行webpack (CLI),我就会被webpack并出现许多错误。

我收到了很多这样的警告

./~/fbjs/lib/partitionObject.js.flow中的警告模块解析失败:C:\\ node \\ sandbox \\ react-webpack \\ node_modules \\ fbjs \\ lib [SOME FILE NAME HERE] .flow意外令牌(18:24)您可能需要适当的加载程序来处理此文件类型。

...以及许多此类错误

./~/react/lib/NativeMethodsMixin.js中的错误找不到模块:错误:无法在C:\\ node \\ sandbox \\ react-webpack \\ node_modules \\ react \\ lib @中解析模块'react-native / lib / TextInputState'。 /~/react/lib/NativeMethodsMixin.js 17:21-63

我不使用React Native,我不知道如何。

我还在webpack.config.production.js文件中使用了webpack.optimize.UglifyJsPlugin

当我删除webpack.ProvidePlugin位时,构建工作正常,但包含React的开发版本,并且在控制台中收到警告:

警告:您似乎正在使用React开发版本的缩小版本。 将React应用程序部署到生产中时,请确保使用生产版本,该版本会跳过开发警告并且速度更快。

这些webpack错误到底是关于什么的? 如何获得也已最小化的React生产版本?

UPDATE

要求完整的Webpack配置。 我为此设置了一个测试应用程序,并且配置最少,警告和错误仍然显示:

webpack.config.js

module.exports = process.env.NODE_ENV === 'production' ? require('./webpack.config.production.js') : require('./webpack.config.development.js')

webpack.config.base.js

module.exports = {
  entry: {
    'bundle': './client/index.js'
  },
  output: {
    path: './public',
    filename: 'js/[name].js'
  },
  module: {
    loaders: [
      {
        test: /\.js$/,
        exclude: /(node_modules|bower_components)/,
        loader: 'babel-loader',
        query: { presets: ['es2015', 'react'] }
      }
    ]
  }
}

webpack.config.development.js

var config = require('./webpack.config.base')
module.exports = config

webpack.config.production.js

var webpack = require('webpack')

var config = require('./webpack.config.base')

config.plugins = [
  new webpack.ProvidePlugin({
    'process.env': {
      'NODE_ENV': JSON.stringify('production')
    }
  }),
  new webpack.optimize.UglifyJsPlugin({
    include: /\.js$/,
    compress: { warnings: false }
  })
]

module.exports = config

我正在使用的测试应用仅安装了以下内容:

"dependencies": {
  "express": "^4.14.0",
  "react": "^15.3.2",
  "react-dom": "^15.3.2"
},
"devDependencies": {
  "babel": "^6.5.2",
  "babel-core": "^6.18.2",
  "babel-loader": "^6.2.7",
  "babel-preset-es2015": "^6.18.0",
  "babel-preset-react": "^6.16.0",
  "webpack": "^1.13.3"
}

/client/index.js

import React from 'react'
import ReactDOM from 'react-dom'
import Hello from '../components/Hello'
ReactDOM.render(<Hello />, document.getElementById('page'))

/components/Hello.js

import React from 'react'
const Hello = props => <p>Hello world...</p>
export default Hello

在一个单独的问题中再次询问,但具有完整的错误列表,并且从React Native视图中询问,因为即使我不尝试使用它,这些错误也包含对React Native的引用:

Webpack在生产中:为什么要响应本机错误?

在这里回答: Webpack在生产中:为什么要响应本机错误? 通过Aruna Herath。

我应该使用DefinePluginProvidePlugin

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM