public/index.html是个html模板,他被webpack-html-plugin插件处理,然后输出到dist目录
处理内容:
- 注入resource hint (
preload/prefetch、manifest 和图标链接 (当用到 PWA 插件时)- 注入JavaScript 和 CSS 文件的资源链接
模板语法
语法:html-webpack-plugin
另外vue-cli会注入vue-cli环境变量,常见的:
NODE_ENV<br />``"development"、"production"或"test"中的一个BASE_URL
webpack配置项publicPath值preload 和 prefetch
preload和prefetch是高版本浏览器才支持的H5特性
vue-cli会自动使用preload和prefetch
- 为所有初始化渲染需要的资源自动生成
<link rel="preload">标签 - 为所有作为 async chunk (比如router
import()导入的组件)资源自动生成 prefetch 属性preload
预加载,优先加载的资源(这些资源在页面加载完需要立即使用的,在渲染时即进行下载)
/**css 预加载**/<link rel="preload" href="xx.css" as="style">/**js 预加载**/<link rel="preload" href="xx.js" as="script">/**其他**/// ...
例:
<head><meta charset="utf-8"><title>JS and CSS preload example</title><link rel="preload" href="style.css" as="style"> // 预加载<link rel="preload" href="main.js" as="script"><link rel="stylesheet" href="style.css"> // 正常使用</head><body><h1>bouncing balls</h1><canvas></canvas><script src="main.js"></script></body>
prefetch
空闲预加载,优先级低,在浏览器空闲时预加载一些资源(方便后续页面使用)
<link rel="prefetch" href="/images/big.jpeg">
