26-code split
第一种:多入口
const { resolve } = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
  // 单入口
  // entry: './src/js/index.js',
  entry: {
    // 多入口:有一个入口,最终输出就有一个bundle
    main: './src/js/index.js',
    test: './src/js/test.js'
  },
  output: {
    // [name]:取文件名
    filename: 'js/[name].[contenthash:10].js',
    path: resolve(__dirname, 'build')
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/index.html',
      minify: {
        collapseWhitespace: true,
        removeComments: true
      }
    })
  ],
  mode: 'production'
};
第二种:单独打包第三方模块为一个js,可配合多入口
const { resolve } = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
process.env.NODE_ENV = 'production';
module.exports = {
  // 单入口
  // entry: './src/js/index.js',
  entry:{
    main:'./src/js/index.js',
    entry:'./src/js/test.js'
  },
  output: {
    // [name]:取文件名
    filename: 'js/[name].[contenthash:10].js',
    path: resolve(__dirname, 'build')
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/index.html',
      minify: {
        collapseWhitespace: true,
        removeComments: true
      }
    })
  ],
  optimization: {
    /**
     * 1. 可以将node_modules中代码单独打包一个chunk最终输出
     * 2. 自动分析多入口chunk中,有没有公共的文件。如果有会打包成单独一个chunk
     */
    splitChunks: {
      chunks: 'all'
    }
  },
  mode: 'production'
};
第三种:通过js单独打包
const { resolve } = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
process.env.NODE_ENV = 'production';
module.exports = {
  // 单入口
  entry: './src/js/index.js',
  // entry:{
  //   main:'./src/js/index.js',
  //   entry:'./src/js/test.js'
  // },
  output: {
    // [name]:取文件名
    filename: 'js/[name].[contenthash:10].js',
    path: resolve(__dirname, 'build')
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/index.html',
      minify: {
        collapseWhitespace: true,
        removeComments: true
      }
    })
  ],
  optimization: {
    /**
     * 1. 可以将node_modules中代码单独打包一个chunk最终输出
     * 2. 自动分析多入口chunk中,有没有公共的文件。如果有会打包成单独一个chunk
     */
    splitChunks: {
      chunks: 'all'
    }
  },
  mode: 'production'
};
function sum(...args) {
  return args.reduce((p, c) => p + c, 0);
}
/**
 * 通过js代码,让某个文件被单独打包成一个chunk
 * import动态导入语法:能将某个文件单独打包
 */
import(/* webpackChunkName: 'test' */'./test').then(({ mul, count }) => {
  // eslint-disable-next-line
  console.log(mul(2, 5))
}).catch(() => {
  // eslint-disable-next-line
  console.log('文件加载失败');
})
26-code split的更多相关文章
- [Vue] Code split by route in VueJS
		In this lesson I show how to use webpack to code split based on route in VueJS. Code splitting is a ... 
- 摩尔斯电码(Morse Code)Csharp实现
		摩尔斯电码,在早期的"生产斗争"生活中,扮演了很重要的角色,作为一种信息编码标准,摩尔斯电码拥有其他编码方案无法超越的长久生命.摩尔斯电码在海事通讯中被作为国际标准一直使用到199 ... 
- github/python/ show me the code 25题(一)
		先上网址 https://github.com/Show-Me-the-Code/show-me-the-code 初学python拿来练手,记住一些常用的库和函数 第 0000 题:将你的 QQ 头 ... 
- vuejs code splitting with webpack 3种模式
		我们知道一个web app如果太大会严重影响用户的体验,如何能够最快速度地让用户看到完整页面是优化web应用需要做的重要工作. 这其中使用code split实现lazy加载,只让用户初次访问时只加载 ... 
- webpack 和 code splitting
		Code Splitting指的是代码分割,那么什么是代码分割,webpack和code splitting又有什么样的联系呢? 使用npm run dev:"webpack-dev-ser ... 
- Clean Code of JavaScript
		Clean Code of JavaScript 代码简洁之道 JavaScript 版 https://github.com/ryanmcdermott/clean-code-javascript ... 
- JS中的进制转换以及作用
		js的进制转换, 分为2进制,8进制,10进制,16进制之间的相互转换, 我们直接利用 对象.toString()即可实现: //10进制转为16进制 ().toString() // =>&q ... 
- Java 集合类  TreeSet、TreeMap
		TreeMap和TreeSet的异同: 相同点: TreeMap和TreeSet都是有序的集合,也就是说他们存储的值都是拍好序的. TreeMap和TreeSet都是非同步集合,因此他们不能在多线程之 ... 
- JS简单加密
		//简单的jS加密解密//code为对应的字符串,h为(2,8,10,16)就是要转成的几进制function en(code, h) { var monyer = new Array();var i ... 
- 条码解析的一片js
		function HIBC_CheckCode(code) { var nonCheckCode = code.substr(0, code.length - 1); var arr ... 
随机推荐
- Crypto入门 (十一)easychallenge
			前言: 这题跟python有关,可见看懂python代码还是很有必要得,需要有一些python基础才好 easychallenge: 题目: 下载后来发现是一个.pyc为后缀得文件,查找资料可知,该文 ... 
- 掷骰子【普通线性DP】【转移方程可以优化为矩阵快速幂】
			掷骰子 思路 可以先定义一个状态f[i] [j]: 前i个骰子,最后一个面是j的方法数, 肯定超时,然鹅可以混一些分,代码如下 for(int i=1;i<=6;i++) f[0][i]=1; ... 
- CatDCGAN项目复现与对抗网络初识
			CatDCGAN项目复现与对抗网络初识 作者 CarpVexing 日期 100521 禁止转载 目录 CatDCGAN项目复现与对抗网络初识 引言 CatDCGAN项目基本信息 复现项目的准备工作 ... 
- 如何设置表格的高度 element 的table 组件
			<el-table :row-style="{ height: '30px' }" :cell-style="{ padding: 0 }" :data= ... 
- 转载:谷歌浏览器一些https打不开点击高级不行的解决办法
			转载:https://blog.51cto.com/u_15275035/2925642 关于谷歌浏览器一些https网站打不开点击高级不行的解决办法有些url,在谷歌浏览器上打不开,点击高级也没有继 ... 
- TCP长连接管道通信改消息队列涉及到的知识点
			1.队列,链表,STL 1.C++ STL标准库简介 长久以来,软件界一直希望建立一种可重复利用的东西,以及一种得以制造出"可重复运用的东西" 的方法,从函数(functions) ... 
- 简单总结一下html中能见到的各种相对路径
			试列举如下(在本文中,星号表示资源名): href="/*" href="//*" href="*" href="./*" ... 
- Python第七章实验报告
			一.实验名称:<零基础学Python>第7章 面向对象程序设计 二.实验环境:IDLE Shell 3.9.7 三.实验内容:5道实例.4道实战 四.实验过程: 实例01 创建大雁类并定义 ... 
- Checkmk监控工具使用手册
			其实用法Checkmk官网文档很全面:https://docs.checkmk.com/latest/en/intro_setup.html 顺着beginner's guide章节看完基本就能上手, ... 
- opengauss集群安装报错
			DB_VERSION:opengauss 3.0.3 1.[GAUSS-51632] [GAUSS-51632] : Failed to do gs_sshexkey.Error: Please en ... 
