在编写前端代码时,有些文件作为单独的文件引用会更便于维护,但是有些文件却必须要内联。
文件内联的场景如下:
1. 页面加载时需要初始化的代码需要内联;
2. 一些上报与回传的打点的代码需要内联;
3. 为了避免页页闪动,首屏渲染的CSS代码需要内联;
4. 减少HTTP的网络请求次数,将小图片或字体文件直接内联;
在Webpack中内联html和javaScript代码可以通过raw-loader这个插件来完成
1. 安装插件
npm i raw-loader@0.5.1 -D
需要注意的是,这个插件的最新版本存在一些问题,所以需要指定0.5的这个版本。
2. 拆分需要内联的HTML片段
<!-- meta.html -->
<meta charset="UTF-8">
<meta name="viewport" content="viewport-fit=cover,width=device-width,initial-scale=1,user-scalable=no">
<meta name="format-detection" content="telephone=no">
<meta name="keywords" content="now,now直播,直播,腾讯直播,QQ直播,美女直播,附近直播,才艺直播,小视频,个人直播,美女视频,在线直播,手机直播">
<meta name="name" itemprop="name" content="NOW直播—腾讯旗下全民视频社交直播平台"><meta name="description" itemprop="description" content="NOW直播,腾讯旗下全民高清视频直播平台,汇集中外大咖,最in网红,草根偶像,明星艺人,校花,小鲜肉,逗逼段子手,各类美食、音乐、旅游、时尚、健身达人与你24小时不间断互动直播,各种奇葩刺激的直播玩法,让你跃跃欲试,你会发现,原来人人都可以当主播赚钱!">
<meta name="image" itemprop="image" content="/file/imgs/upload/202301/09/c4gqxstie5b.jpg"><meta name="baidu-site-verification" content="G4ovcyX25V">
<meta name="apple-mobile-web-app-capable" content="no">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<link rel="dns-prefetch" href="//11.url.cn/" rel="external nofollow" >
<link rel="dns-prefetch" href="//open.mobile.qq.com/" rel="external nofollow" >
3. 利用插件内联HTML片段与JS插件
<!DOCTYPE html>
<html lang="en">
<head>
<!-- 引入meta.html片段-->
${ require('raw-loader!./meta.html')}
<title>Webpack内联文件</title>
<!-- 将外部JS插件进行内联 -->
<script>
${ require('raw-loader!babel-loader!../../node_modules/lib-flexible/flexible.js')}
</script>
</head>
<body>
<div id="root"></div>
</body>
</html>
到此这篇关于Webpack打包时将文件内联方法实现的文章就介绍到这了,更多相关Webpack打包内联内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!