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">