Webpack学习笔记(9)

Shimming预置依赖

预置全局变量

例如lodash:

细颗粒度shimming

当模块运行在commonjs上下文中,this指向的是module.exports并不是window,所以可以覆盖一下。

安装npm i imports-loader -D

配置后this指向window:

全局Exports

全局导出一个模块:

加载Polyfills

当新的 JavaScript 特性或 API 被引入时,旧版浏览器可能不支持这些特性。Polyfills 通过提供与新特性相同功能的代码,使得这些特性在旧版浏览器中也能正常工作。

npm i @babel/polyfill -D

优化polyfill

不建议直接使用import @babel/polyfill,这样做会全局引入整个polyfill包,比如array.from全局引入,不但体积大,而且还会污染全局环境。使用babel-preset-env

npm i babel-loader @babel/core @babel/preset-env -D

创建Library

自定义一个模块打包,可供使用

配置library,type可以设置为:window,commonjs,module,amd等等,可以设置为umd可满足多个type但不包括module

发布为npm-package

登录npm

npm config get registry

npm adduser输入用户名密码等

npm publish发布,其他人可以使用

使用时npm i 名字 -D

然后可以使用require引入:

相关推荐
悠哉悠哉愿意4 分钟前
【数学建模学习笔记】时间序列分析:LSTM
笔记·学习·数学建模
咸甜适中2 小时前
rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(二十四)窗口颜色、透明度、居中显示
笔记·学习·rust·egui
北冥电磁电子智能2 小时前
江协科技STM32学习笔记补充之004 基于XC6206P332MR(Torex)的5V到3.3V的电压转换电路分析
科技·stm32·学习
程序员Xu3 小时前
【LeetCode热题100道笔记】轮转数组
笔记·算法·leetcode
群联云防护小杜3 小时前
服务器异常负载排查手册 · 隐蔽进程篇
运维·服务器·前端·数据库·笔记·sql·tcp/ip
赤月幼狼4 小时前
elasticsearch学习(五)文档CRUD
学习·elasticsearch
清涧游4 小时前
solar应急响应-7月
学习·安全
繁花与尘埃4 小时前
Java流程控制04——if选择结构(本文为个人学习笔记,内容整理自哔哩哔哩UP主【遇见狂神说】的公开课程。 > 所有知识点归属原作者,仅作非商业用途分享)
java·笔记·学习
一枚前端小能手4 小时前
🚀 Webpack打包慢到怀疑人生?这6个配置让你的构建速度起飞
前端·javascript·webpack
_Kayo_5 小时前
React 学习笔记4 Diffing/脚手架
笔记·学习·react.js