Promise.allSettled()方法返回一个在所有给定的promise已被决议或被拒绝后决议的promise,并带有一个对象数组,每个对象表示对应的promise结果。allSettled函数是没有失败的(即使某个promise失败)
webpack常用优化
发表于
|
分类于
webpack
如何加快构建速度
- 通过externals配置来提取常用库
- 利用DllPlugin和DllReferencePlugin预编译资源模块
- HappyPack它把任务分解给多个子进程去并发的执行,子进程处理完后再把结果发送给主进程。
- 缩小范围
- module.rules
- exclude、include
- resolve.modules
默认是当前目录下的node_modules,而依赖库却在项目根目录下的node_modules - resolve.mainFields
- resolve.extension
extensions默认是[js,json]
- module.rules
- babel-plugin-import
优化代码
- splitChunks
- 代码分割
- contentHash长缓存
- prefetch/preload
- css/js压缩,postcss去重,去掉无用css
- 文件放入cdn(多域名)
- tree-shaking
- es6模块导入,静态,不能是require
第三方库处理-externals
防止将某些 import 的包(package)打包到 bundle 中,而是在运行时(runtime)再去从外部获取这些扩展依赖(external dependencies)。参见externals