vue多页应用,一个webpack两个项目

3 篇文章 0 订阅

核心思想
两个vue项目,一次webpack打包,关系用url联系
webpack操作:
1、多个入口
{main1: './user.main.js', main2: './goods.main.js'}
2、多个html插件

注意事项
// 文件名称
filename:filename+'.html'
// 页面模板需要加对应的js脚本,如果不加这行,则每个页面都会引入所有的js脚本
chunk: ['manifest', 'vendor', filename], inject: true

具体步骤
1、src中放两个项目文件夹
分别有index.html/main.js/App.vue,名字需要区分
在这里插入图片描述
2、webpack.base.config.js配置多个入口,以数组形式
在这里插入图片描述
3、webpack.prod.config.js中处理htmlWebpackPlugins
有几个项目就写几个new htmlWebpackPlugins,可写成函数单独提出
示例写法

function getHtmls(){
  let files = [
    path.join(__dirname,'..','src/projects/goods/goods.index.html'),
    path.join(__dirname,'..','src/projects/user/user.index.html')
  ]
  let filenames = ['goods.index','user.index'];//产出到dist目录下的文件名
  let plugins = [];
  for(let i=0;i<files.length;i++){
    plugins.push(
      new HtmlWebpackPlugin({
        filename: filenames[i] +'.html',
        template:  files[i],
        inject: true,
        minify: {
          removeComments: true,
          collapseWhitespace: true,
          removeAttributeQuotes: true,
          // more options:
          // https://github.com/kangax/html-minifier#options-quick-reference
        },
        // necessary to consistently work with multiple chunks via CommonsChunkPlugin
        chunks:['manifest','vendor',filenames[i]],
        chunksSortMode: 'dependency'
      })
    );
  }
  return plugins;
}

4、将函数结果拼接到plugins数组后面

plugins:[...].concat(getHtmls());

5、运行build命令,最终生成如下
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值