扶着你玩转webpack4——基础配置

webpack4的改动其实挺大,但破坏性更新不算太多,称得上破坏性更新的恐怕只有 CommonChunkPlugin 的移除了。

首先我们初始化项目

yarn init

然后我们安装我们需要的模块。在 webpack4 中,我们需要多安装一个 webpack-cli

yarn add webpack webpack-cli webpack-dev-server

在项目的根目录中创建一个 webpack.config.js 的文件。
和 webpack2 或者 webpack3 一样,你将很容易写出这样的配置。

const path = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin')

module.exports = {
  entry: './src/main.js',

  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: '[name].js'
  },

  module: {
    rules: [
      {
        test: /\.js$/,
        use: 'babel-loader'
      },
      {
        test: /\.css$/,
        use: ['style-loader', 'css-loader']
      }
    ]
  },

  plugins: [
    new HtmlWebpackPlugin({
      title: '你好,webpack4',
      template: './index.html'
    })
  ],

  devServer: {
    proxy: {
      '/apis': {
        target: 'https://m.mock.com/api',
        changeOrigin: true,
        pathRewrite: {
          '^/apis': ''
        }
      }
    }
  }
}

但是需要注意的是,webpack4 标榜的是零配置,但是我们知道前端开发环境一般有 developmentproduction ,甚至有更多,比如 test 等。所以我们需要指定我们的环境。

module.exports = {
	mode: 'development'
}

接着我们在 package.json 中添加脚本命令,如果我们根目录的文件名不是 webpack.config.js ,那么需要指定文件。

"scripts": {
   "dev": "webpack-dev-server"
 }

这里多说一下,loader 是用来帮助 webpack 来打包非 js 文件的,在 use 中执行顺序是从右到左。

{
  test: /\.less$/,
  use: ['style-loader', 'css-loader', 'postcss-loader', 'less-loader']
}

所以先执行 less-loader 再执行 postcss-loadercss-loaderstyle-loader
less-loader 好理解,就是专门处理 .less 文件的
postcss-loader 是接管 less-loader 处理后的文件
css-loader 解析 css 文件,主要处理 css 引入的 importurl
style-loader 因为 css 被打入到 js 文件中,所以需要动态创建 style 来进行样式引入

但并不保证是从上到下的,loader 的执行顺序如下: 前置 -> 行内 -> 普通 -> 后置。所以可以在某些模块上增加 前置 标识。

{
  enforce: 'pre', // 指定为前置类型
  test: /\.js$/,
  exclude: /node_modules/,
  loader: "eslint-loader",
}

还有一点需要注意的是:
derServerproxy 借用了 http-proxy-middleware 模块来实现。

具体配置释义在这片博文中:proxy的配置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值