日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

webpack5 配置熱更新失效問題

作者:丶扁扁的糖是扁的 更新時間: 2022-01-19 編程語言

?這是關于webpack的版本信息:

"webpack": "^5.37.0",
"webpack-bundle-analyzer": "^4.5.0",
"webpack-cli": "^4.9.0",
"webpack-dev-server": "^3.11.2",
"webpack-merge": "^5.7.3",
"webpackbar": "^5.0.0-3"

在webpack.dev.conf.js已經配置了 hot:true,但是熱更新依舊無效:

devServer: {
    clientLogLevel: 'warning',
    historyApiFallback: {
      rewrites: [
        { from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, 'index.html') },
      ],
    },
    hot: true, //開啟熱更新
    contentBase: false, // since we use CopyWebpackPlugin.
    compress: true,
    host: HOST || config.dev.host,
    port: PORT || config.dev.port,
    open: config.dev.autoOpenBrowser,
    overlay: config.dev.errorOverlay
      ? { warnings: false, errors: true }
      : false, //是否輸出錯誤信息 
    publicPath: config.dev.assetsPublicPath,
    proxy: Object.assign(porxyStatic(), config.dev.proxyTable, multiConfig.process.proxyTable),
    quiet: true, // necessary for FriendlyErrorsPlugin
    useLocalIp: true,//用本地ip
    watchOptions: {
      poll: config.dev.poll,
    }
  },
// webpack 將生成 web 平臺的運行時代碼,并且只使用 ES5 相關的特性。
target: ['web', 'es5'],

原因是最后一行配置的編譯成es5?:

target:?['web',?'es5']
//webpack?將生成?web?平臺的運行時代碼,并且只使用?ES5?相關的特性。

這個版本的webpack貌似存在這個bug,編譯成es5后熱更新失效。

想要本地熱更新開啟并且保持編譯成es5,就要dev和prod分開設置:

webpack.dev.conf.js:

target: 'web',//本地設置成web

webpack.prod.conf.js:

target: ['web', 'es5'],//正式環境打包編譯成es5

這樣本地保持熱更新但是不編譯成es5,線上打包編譯成es5。本地需要使用es6的建議安裝@babel/polyfill

原文鏈接:https://blog.csdn.net/sugerinaflat/article/details/122045864

欄目分類
最近更新