webpack4配置react开发环境

webpack4大大提升了开发效率,简化了配置复杂度,做为一个大的版本更新,做为一个对开发效率执着的爱折腾的程序员,已经忍不住要尝尝鲜了css

首先是cli和webpack的分离,开发webpack应用程序须要安装一些开发依赖node

webpackreact

webpack-cliwebpack

webpack-dev-server程序员

babel-loader, babel-core, babel-preset-env, babel-preset-reactweb

css-loader less-loader style-loader less ( 若是是sass的话安装 sass-loader和node-sass )express

file-loader浏览器

 yarn add webpack webpack-cli webpack-dev-server less less-loader style-loader css-loader babel-loader babel-core babel-preset-react babel-preset-env file-loader --save --dev

安装好以后开始配置webpacksass

mode服务器

4.0版本添加了一个mode参数

development 或者 production,直接设置这两个参数,能够省去配置一些插件,可是也能够设置为 none,插件也能够本身手动配置

若是是development的话,至关于旧版本的

plugins: [
    new webpack.NamedModulesPlugin(),
    new webpack.DefinePlugin({ "process.env.NODE_ENV":JSON.stringify("development") }),
]

 若是是production 的话,至关于旧版本的

plugins: [
    new UglifyJsPlugin(/* ... */),
    new webpack.DefinePlugin({ "process.env.NODE_ENV":JSON.stringify("production") }),
    new webpack.optimize.ModuleConcatenationPlugin(),
    new webpack.NoEmitOnErrorsPlugin()
]

 

入口和出口

旧版本中须要配置入口文件和出口文件,新版本若是不执行入口和出口,那么默认的配置就会和下边同样

module.exports = {
    entry: './src/index.js',
    output: {
        path: path.resolve(__dirname, './dist'),
        filename: 'main.js'
    }
}

零配置 

由于不少都有默认值了,因此咱们能够实现零配置

以上咱们能够认为经过以下命令来实现

webpack --mode=development

 

loader

略有些复杂的loader配置可能会比较麻烦,若是用命令行实现也能够,但会执行一条很长的命令

注意loader的顺序是不能乱的,好比css 须要先经过 css-loader 而后 style-loader写到页面内, 也就是说在 use 里是反着写的

  module: {
        rules: [
            {
                test: /\.css$/,
                use: ['style-loader', 'css-loader']
            },
            {
                test: /\.less$/,
                use: ['style-loader', 'css-loader', 'less-loader']
            },
            {
                test: /\.(js|jsx)$/,
                use: ['babel-loader']
            },
            {
                test: /\.(png|jpg|jpeg|gif)$/,
                use: ['file-loader']
            }
        ]
    }

 

devServer

webpack-dev-server 能够快速让网站运行在一个 express 做为后台的虚拟服务器上,这样也能够实现不少开发的便利,好比热更新,浏览器实时刷新

主要参数

相关文章
相关标签/搜索