Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 即使在使用DefinePlugin后也会出现反应错误_Reactjs_Webpack_Redux - Fatal编程技术网

Reactjs 即使在使用DefinePlugin后也会出现反应错误

Reactjs 即使在使用DefinePlugin后也会出现反应错误,reactjs,webpack,redux,Reactjs,Webpack,Redux,我在Webpack中使用React 15.4.2和Redux 3.6.0,这是我的Webpack.config.js文件内容:(为了简洁起见,省略了一些代码) const path=require('path'); const webpack=require('webpack'); const merge=require('webpack-merge'); const HTMLWebpackPlugin=require('html-webpack-plugin'); const CleanWeb

我在Webpack中使用React 15.4.2和Redux 3.6.0,这是我的Webpack.config.js文件内容:(为了简洁起见,省略了一些代码)

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 favicons-webpackplugin=require('favicons-webpack-plugin');
const-pkg=require('./package.json');
const TARGET=process.env.npm_lifecycle_事件;
常量路径={
src:path.join(uu dirname,'src/js'),
dist:path.join(\u dirname,'dist')
};
process.env.BABEL_env=目标;
常数公共={
决心:{
扩展名:['','.js','.jsx']
},
条目:{
app:path.src
},
输出:{
路径:PATHS.dist,
公共路径:“/”,
文件名:'[name].[hash].js'
},
模块:{
装载机:[
{test:/\.jsx?$/,加载程序:['babel?cacheDirectory'],包括:path.src},
{test:/\.scss$/,exclude:/node\u modules/,loader:['style','css','sass']},
{test:/(\.ttf\.woff2?\.eot\.svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,排除:/node\u modules/,加载程序:“url”,
{test://\(jpe?g | png | gif | svg)$/i,排除:/node|u modules/,加载程序:'url?limit=10000!img?progressive=true'},
{test:/\.json/,加载程序:['json']}
]
},
插件:[
新HTMLWebpackPlugin({
模板:“src/index.html”,
注射:“身体”
})
]
};
如果(目标=='build'){
module.exports=合并(公共{
条目:{
供应商:Object.keys(pkg.dependencies)
},
输出:{
路径:PATHS.dist,
文件名:'[name].[chunkhash].js',,
chunkFilename:“[chunkhash].js”
},
模块:{
装载机:[
{test://\.css$/,加载程序:extractTextWebPackagePlugin.extract('style','css'),include:path.src}
]
},
插件:[
新的webpack.DefinePlugin({
'process.env.NODE_env':JSON.stringify(process.env.NODE_env | |'production')
}),
新建webpack.optimize.UglifyJsPlugin({
压缩:{
警告:错误
}
}),
新的CleanWebPackagePlugin([path.dist]),
新的ExtractTextWebPackagePlugin('[name].[chunkhash].css'),
新建webpack.optimize.commonChunkPlugin({
名称:[“供应商”、“清单”]
})
]
});
}
运行
npm run build
将给出缩小的代码。但它仍然给出了错误

警告:看起来您使用的是React开发版本的缩小副本。将React应用程序部署到生产环境时,请确保使用跳过开发警告且速度更快的生产环境。看见https://facebook.github.io/react/docs/optimizing-performance.html#use-有关更多详细信息,请参阅生产版本。

我也尝试过在BuildTarget中重新排序插件,但它给出了相同的错误

我错过了什么

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

编辑

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

"scripts": {
  ...
  "build": "NODE_ENV=production webpack --progress"
  ...
}
编辑#2

这是应用程序中console.log语句的输出


您可以将此语法用于DefinePlugin

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

我启用了源代码映射以查看我一直使用的包,该包使用非标准方式进行了缩小。因此,将NODE_ENV设置为“production”对所述包没有影响。尽管如此,我的网页配置和构建脚本工作得非常好。谢谢你们的帮助,伙计们

这会给您带来错误,因为在编译代码时,您的NODE_ENV未设置为production,这是其他原因。在运行webpack之前,请尝试执行
export NODE\u ENV=production
。这是我的构建脚本:
“build”:“NODE\u ENV=production webpack--progress”
如果您在本地环境中进行测试,则不要使用webpack的UglifyJs插件。因此,我应该使用-p选项进行缩减吗@VikramadityaNo,不要对本地环境进行任何缩小/优化,只在生产中使用这些东西。我只是将两个配置文件分开,一个用于开发,一个用于生产。生产构建的命令是“webpack--config webpack-production.config.js--progress--colors”。即使如此,添加插件的语法也是其中之一。这两个都不起作用。您在浏览器中显示的prod.env显示它处于“生产”环境中,这是正常的。但是,问题应该是在Web包构建过程中,节点环境不是“生产”。这会在生产环境中运行该输出时引发警告。