【发布时间】:2019-03-02 12:54:34
【问题描述】:
我开发了 react 应用程序,在此之前我在 webpack v3 上构建了相同的应用程序,现在我升级到 v4。
在 v3 dev-server 上它运行良好,但在 v4 上它需要很多时间构建并且每次构建整个项目再次(可能就是这个原因)
我的 webpack.dev.js
const webpack = require('webpack');
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
module.exports = {
entry: './src/app.js',
output: {
path: path.join(__dirname, 'public'),
filename: 'bundle.js'
},
devtool: 'inline-source-map',
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: "babel-loader"
}
},
{
test: /\.s?css$/,
use: [
MiniCssExtractPlugin.loader,
{
loader: 'css-loader',
options: {
sourceMap: true,
minimize:false,
importLoaders: 1,
}
},
{
loader: 'sass-loader',
options: {
sourceMap: true
}
}
]
},{
test: /\.(gif|svg|jpg|png|ttf|eot|woff(2)?)(\?[a-z0-9=&.]+)?$/,
loader: "file-loader",
}
]
},
plugins: [
new MiniCssExtractPlugin({
filename: 'styles.css',
}),
new HtmlWebpackPlugin({
template: './src/index.html',
filename: 'index.html'
}),
new webpack.DefinePlugin({
'process.env': {
'NODE_ENV': JSON.stringify('development')
}
})
],
devServer: {
contentBase: path.join(__dirname, 'public'),
historyApiFallback: true,
host:'0.0.0.0',
disableHostCheck: true,
}
};
和 我的脚本 在 package.json
"scripts": {
"start": "node server/server.js",
"build": "webpack --mode production --config=webpack.prod.js",
"dev": "webpack --mode development --config=webpack.dev.js",
"dev-server": "webpack-dev-server --config=webpack.dev.js"
}
显示错误
您目前正在使用 NODE_ENV === 'production' 之外的缩小代码。这意味着您正在运行一个较慢的 Redux 开发版本。您可以对 browserify 使用松散环境 (https://github.com/zertosh/loose-envify) 或对 webpack (http://stackoverflow.com/questions/30030031) 使用 DefinePlugin,以确保您的生产构建具有正确的代码。
但如果console 我的process.env.NODE_ENV 变量显示我发展
我在开发模式下的 dev-server 有两个问题
1)如何减少在开发服务器上重建的时间
2)关于开发模式,为什么它会显示 production 错误。
【问题讨论】:
-
在
development模式下,webpack添加new DefinePlugin(process.env.NODE_ENV)on its own。所以总是指定模式,不要明确使用DefinePlugin。你也可以在配置itself中指定mode。
标签: reactjs webpack webpack-dev-server webpack-4