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引入:

相关推荐
莫逸雪7 小时前
Nodemo使用学习
学习·编辑器·vim
thisbrand8 小时前
李辉《曾国藩日记》笔记:放不下对诗的情节
笔记·曾国藩
列星随旋9 小时前
线段树和树状数组的学习
学习·算法
辰海Coding10 小时前
MiniSpring框架学习-整合 IoC 和 MVC(NPC)
学习·spring·mvc
摇滚侠10 小时前
Java 零基础全套教程,File 类与 IO 流,笔记 177-178
java·开发语言·笔记
观浩11 小时前
使用Obsidian和IDEA搭建个人知识库
经验分享·笔记·学习方法
知识分享小能手12 小时前
Flask入门学习教程,从入门到精通,数据库操作 — 知识点详解与案例代码(4)
数据库·学习·flask
玄米乌龙茶12312 小时前
LLM成长笔记(十三):系统设计与项目实战
笔记·unity·游戏引擎
wubba lubba dub dub75013 小时前
第四十八周学习周报
学习
生成论实验室13 小时前
用事件关系网络重新理解AI(三):激活函数、微调与元学习
人工智能·学习·算法·语言模型·可信计算技术