Skip to content
const { merge } = require('webpack-merge'); //合并
const baseConfig = require('./webpack.base.js');

module.exports = merge(baseConfig, {
  mode: 'development',
  devtool: 'eval-source-map',
  module: {
    rules: [
      {
        test: /\.css$/,
        use: [
          'style-loader', // style-loader 再把css插入head标签中,内部样式<style>  </style>
          'css-loader',
          'postcss-loader' //兼容css3写法,添加浏览器前缀
        ]
      },
      {
        test: /\.less$/,
        use: [
          'style-loader',
          'css-loader',
          'postcss-loader', //兼容css3写法,添加浏览器前缀
          'less-loader' //处理less
        ]
      },
      {
        test: /\.s(a|c)ss$/i,
        use: [
          'style-loader',
          'css-loader',
          'postcss-loader', //兼容css3写法,添加浏览器前缀
          'sass-loader'
        ]
      }
    ]
  },

  devServer: {
    //默认开启项目目录的服务 webpack-dev-server配置好可以自动刷新,不过是整个页面刷新。
    //指定额外的运行服务(静态资源)的路径,可以配置其他的静态文件目录
    //不写contentBase也是运行内存中的/dist/index.html
    contentBase: './dist',
    //contentBase:path.join(__dirname, 'public'),
    host: '127.0.0.1',
    port: 8080,
    progress: true, //进度条 无效
    compress: true, //压缩
    //热更新(页面不刷新的状态下替换代码)前提是 new HotModuleReplacementPlugin()
    hot: true,
    hotOnly: true, //只是用热更新
    open: true, //启动时默认打开浏览器
    proxy: {
      //代理  2种写法
      '/api': 'http://10.20.18.155:8088',
      '/api2': {
        target: 'http://10.20.18.155:3000',
        changeOrigin: true,
        pathRewrite: {
          '^/api2': '/'
        },
        onProxyReq: function(proxyReq, req, res) {
          // 实在不知道代理后的路径,可以在这里打印出出来看看
          console.log('原路径:' + req.originalUrl, '代理路径:' + req.path);
        }
      }
    }
  }
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68

MIT Licensed