前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Webpack打包时将文件内联

Webpack打包时将文件内联

作者头像
越陌度阡
发布2023-01-09 15:50:02
4010
发布2023-01-09 15:50:02
举报

在编写前端代码时,有些文件作为单独的文件引用会更便于维护,但是有些文件却必须要内联。

文件内联的场景如下:

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="https://pub.idqqimg.com/pc/misc/files/20170831/60b60446e34b40b98fa26afcc62a5f74.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/">
<link rel="dns-prefetch" href="//open.mobile.qq.com/">

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>

需要注意的是,在引入JS插件时,需要先利用babel-loader进行转换,所以babel-loader也需要一起引入。

4. 将CSS文件进行内联

1. 利用style-loader实现;

module.exports = {
    module: {
        rules: [
            {
                test: /\.scss$/,
                use: [
                    {
                        loader: 'style-loader',
                        options: {
                            // 样式插入到 <head>
                            insertAt: 'top', 
                            // 将所有的style标签合并成一个
                            singleton: true, 
                        }
                    },
                    "css-loader",
                    "sass-loader"
                ],
            },
        ]
    },
};

2. 利用html-inline-css-webpack-plugin插件;

这种方式用的会更加广泛一点,这个插件可以将CSS代码打包成chunk形式以后内联到head标签之间。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-01-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 安装插件
  • 2. 拆分需要内联的HTML片段
  • 3. 利用插件内联HTML片段与JS插件
  • 4. 将CSS文件进行内联
相关产品与服务
云直播
云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档