lavas-project / lavas

基于 Vue 的 PWA 解决方案,帮助开发者快速搭建 PWA 应用,解决接入 PWA 的各种问题
https://lavas.baidu.com
MIT License
1.97k stars 115 forks source link

按文档用 extendWithWebpackChain 修改 html-webpack-plugin 的配置会报错 #228

Closed chulinyin closed 5 years ago

chulinyin commented 5 years ago

我想修改 html-webpack-plugin 的初始化配置,在 lavas.config.js 中做出如下修改,报错 Cannot read property '__expression' of undefined

module.exports = { 
  build: {
    extendWithWebpackChain: (config, { type, env }) => {
      config.plugin('html').init((Plugin, args) => {
        return new Plugin(...args, {
      cache: false,
      inject: true,
      avicon: path.resolve('static/logo/favicon.ico')
    })
      });    
    })
  }
}

lavas version: 2.2.11 lavas-core-vue version: 1.2.4

chulinyin commented 5 years ago

发现问题在哪里了,extendWithWebpackChain 在 env 为 server 时也会调用,那时候会找不到 html 的 plugin,所以加一个环境判断即可。

extendWithWebpackChain: (config, { type, env }) => {
  if(type === 'server') return;

  config.plugin('html').tap(args => {
    args[0].favicon = 'static/logo/favicon.ico';
    return args;
  })
})