webpack5与webpack4之devSever配置 Invalid options object. Dev Server has been initialized using an optio

当进行webpack4中的配置时deServer配置如下:

const { resolve } = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  entry: './src/index.js',
  output: {
    filename: 'built.js',
    path: resolve(__dirname, 'build')
  },
  module: {
    rules: [
      {
        test: /\.css$/,
        use: ['style-loader', 'css-loader']
      },
      // 打包其他资源(除了html/js/css资源以外的资源)
      {
        // 排除css/js/html资源
        exclude: /\.(css|js|html|less)$/,
        loader: 'file-loader',
        options: {
          name: '[hash:10].[ext]'
        }
      }
    ]
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/index.html'
    })
  ],
  mode: 'development',

  // 开发服务器 devServer:用来自动化(自动编译,自动打开浏览器,自动刷新浏览器~~)
  // 特点:只会在内存中编译打包,不会有任何输出
  // 启动devServer指令为:npx webpack-dev-server
  devServer: {
    // 项目构建后路径
    contentBase: resolve(__dirname, 'build'),
    // 启动gzip压缩
    compress: true,
    // 端口号
    port: 8082,
    // 自动打开浏览器
    open: true
  }
};

选用用以上代码在webpack5版本包运行会报一下错误:

 解决办法:

引入:const path = require("path");

将:contentBase: resolve(__dirname, 'build'),

改成:

  static: {

      directory: path.join(__dirname, "build"),

//中间件会在查看没有 index.html 文件的目录时生成目录列表

      serveIndex: true,

    },

当你选用webpack5时deServer配置如下:

const { resolve } = require("path");

const path = require("path");

const HtmlWebpackPlugin = require("html-webpack-plugin");

module.exports = {

  entry: "./src/index.js",

  output: {

    filename: "built.js",

    path: resolve(__dirname, "build"),

  },

  module: {

    rules: [

      {

        test: /\.css$/,

        use: ["style-loader", "css-loader"],

      },

      // // 打包其他资源(除了html/js/css资源以外的资源)

      // {

      //   // 排除css/js/html资源

      //   exclude: /\.(css|js|html|less)$/,

      //   loader: 'file-loader',

      //   options: {

      //     name: '[hash:10].[ext]'

      //   }

      // }

      //打包其他资源(除了html,css.js以外的资源)

      {

        //排除css/js/htm1资源

        exclude: /\.(css|js|html|less)$/,

        type: "asset/resource",

        generator: {

          filename: "resources/[hash:10][ext][query]",

        },

      },

    ],

  },

  plugins: [

    new HtmlWebpackPlugin({

      template: "./src/index.html",

    }),

  ],

  mode: "development",

  // mode:"production"

  //开发服务器devServer:用来自动化(自动编译,自动打开浏览器,自动刷新浏览器~~)

  //特点:只会在内存中编译打包,不会有任何输出

  //启动devServer指令为: npx webpack-dev-server

  devServer: {

    static: {

      directory: path.join(__dirname, "build"),

//中间件会在查看没有 index.html 文件的目录时生成目录列表

      serveIndex: true,

    },

    //启动gzip压缩

    compress: true,

    open: true, // 自动打开浏览器

    //端口号

    port: 8082,

  },

};

在运行npx  webpack-dev-server 就不会报错

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值