首页 > 其他分享 >webpack生产环境优化:懒加载和预加载

webpack生产环境优化:懒加载和预加载

时间:2023-08-28 22:59:47浏览次数:52  
标签:index console js webpack test mul 优化 加载

转载请注明 来源:http://www.eword.name/
Author:eword
Email:[email protected]

webpack生产环境优化:懒加载和预加载

一、直接加载

浏览器一打开,直接加载了test.js
这里使用了直接导入方式。
直接导入:import { mul } from './test';

// ./src/js/index.js
//入口文件

console.log('index.js被加载了~');

/* 直接加载了 */
import { mul } from './test';

console.log(mul);

document.getElementById('btn').onclick = function () {
    console.log(mul(4, 5));
}

核心配置

// ./src/js/index.js
console.log('index.js被加载了~');

二、懒加载

懒加载,当文件需要使用时才加载。
需要使用import动态导入方式。

// ./src/js/index.js
console.log('index.js被加载了~');

/*
懒加载
*/
 document.getElementById('btn').onclick = function () {
     //懒加载,当文件需要使用时才加载~
     import(/* webpackChunkName:'test' */'./test')
         .then(({ mul }) => {
             console.log(mul(4, 5));
         })
 }


核心配置

// ./src/js/index.js
     import(/* webpackChunkName:'test' */'./test')
         .then(({ mul }) => {
            //成功加载时执行。
            ……
         })
  • webpackChunkName:'test' :配置打包时的chunk名称,既文件名。

三、预加载

预加载prefetch:会在使用之前,提前加载js文件。
同样需要使用import动态导入方式。
正常加载可以认为是并行加载(同一时间加载多个文件) 预加载 prefetch:等其他资源加载完毕,浏览器空闲了,再加载资源。

//入口文件
console.log('index.js被加载了~');

/* 
预加载
*/
document.getElementById('btn').onclick = function () {
    //预加载prefetch:会在使用之前,提前加载js文件.
    //正常情况下加载可以认为是并行加载(同一时间加载多个文件)。
    //实际上预加载 prefetch会等其他资源加载完毕,浏览器空闲了,再加载设置了预加载的资源。
    import(/* webpackChunkName:'test', webpackPrefetch:true */'./test')
        .then(({ mul }) => {
            console.log(mul(4, 5));
        })
} 

核心配置

// ./src/js/index.js
     import(/* webpackChunkName:'test', webpackPrefetch:true */'./test')
         .then(({ mul }) => {
            //成功加载时执行。
            ……
         })
  • webpackChunkName:'test' :配置打包时的chunk名称,既文件名。
  • webpackPrefetch:true:配置预加载模式。
  • 打包时会有prefetch提示。

四、工程文件目录

# 目录结构
.
├── src
│   ├── index.html
│   └── js
│       ├── index.js      //入口文件
│       └── test.js       //被加载的文件
└── webpack.config.js
// ./src/js/test.js

console.log('test.js被加载了~');

export function mul(x, y) {
    return x * y;
}

export function count(x, y) {
    return x - y;
}

<!-- ./src/index.html -->

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>webpack</title>
</head>

<body>
    <H1>hello lazy loading</H1>
    <button id="btn">加载</button>
</body>

</html>

标签:index,console,js,webpack,test,mul,优化,加载
From: https://www.cnblogs.com/shylock/p/webpack202308272.html

相关文章

  • webpack生产环境优化:externals
    转载请注明来源:http://www.eword.name/Author:ewordEmail:[email protected]生产环境优化:externalsexternals配置主要是为了防止某些通过CDN引入的包被打包到输出的bundle中。一、核心配置/*webpack.config.jswebpack的配置文件路径:./webpack.config......
  • webpack生产环境优化:多线程打包
    转载请注明来源:http://www.eword.name/Author:ewordEmail:[email protected]生产环境优化:多线程打包多线程打包主要用于需要打包的文件较多的情况下提高打包效率,缩短打包时间。注意:开启多进程打包时,进程开启大概需要600ms,进程通信也有开销。建议:只有工作消耗时间......
  • webpack生产环境优化:PWA
    转载请注明来源:http://www.eword.name/Author:ewordEmail:[email protected]生产环境优化:PWAPWA可简称为“离线可访问技术”。一、下载插件PWA:渐进式网络开发应用程序(离线可访问),需要插件workbox-webpack-plugin的支持。workbox--〉workbox-webpack-plugin......
  • webpack生产环境优化:dll
    转载请注明来源:http://www.eword.name/Author:ewordEmail:[email protected]生产环境优化:dlldll动态链接库目的:单独的将多个指定的第三方库打包成一个chunk。意义:将不同的库分割开来,实现代码分割和避免重复打包,在节省打包时间的同时方便按需加载和预加载的实现......
  • webpack生产环境优化:tree shaking
    转载请注明来源:http://www.eword.name/Author:ewordEmail:[email protected]生产环境优化:treeshakingtreeshaking:去除无用代码前提:1.必须使用ES6模块化2.开启production环境1一、核心配置```js/*webpack.config.jswebpack的配置文件......
  • webpack生产环境优化:code split
    转载请注明来源:http://www.eword.name/Author:ewordEmail:[email protected]生产环境优化:codesplitcodesplit代码分割,既将打包后的js分割成多份js文件,方便后期实现“并行加载”、“按需加载”等,提高性能。一、核心配置建议使用方式二的单入口模式,并按需使用......
  • webpack生产环境优化:PWA
    转载请注明来源:http://www.eword.name/Author:ewordEmail:[email protected]生产环境优化:PWAPWA可简称为“离线可访问技术”。一、下载插件PWA:渐进式网络开发应用程序(离线可访问),需要插件workbox-webpack-plugin的支持。workbox--〉workbox-webpack-plugin......
  • webpack生产环境优化:多线程打包
    转载请注明来源:http://www.eword.name/Author:ewordEmail:[email protected]生产环境优化:多线程打包多线程打包主要用于需要打包的文件较多的情况下提高打包效率,缩短打包时间。注意:开启多进程打包时,进程开启大概需要600ms,进程通信也有开销。建议:只有工作消耗时间......
  • webpack生产环境优化:懒加载和预加载
    转载请注明来源:http://www.eword.name/Author:ewordEmail:[email protected]生产环境优化:懒加载和预加载一、直接加载浏览器一打开,直接加载了test.js这里使用了直接导入方式。直接导入:import{mul}from'./test';//./src/js/index.js//入口文件console.......
  • webpack生产环境优化:externals
    转载请注明来源:http://www.eword.name/Author:ewordEmail:[email protected]生产环境优化:externalsexternals配置主要是为了防止某些通过CDN引入的包被打包到输出的bundle中。一、核心配置/*webpack.config.jswebpack的配置文件路径:./webpack.config......