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

相关推荐
似水明俊德2 分钟前
11-C#.Net-多线程-Async-Await篇-学习笔记
开发语言·笔记·学习·c#·.net
leeshuqing9 分钟前
《Python程序设计(AI辅助学习版)》已经出版
人工智能·python·学习
TON_G-T9 分钟前
uniapp-解放主包,组件下沉分包插件
webpack·uni-app
WIN赢9 分钟前
【02】interview-QA
学习
@大吉12 分钟前
AI笔记第二节:RNN 循环神经网络
人工智能·笔记·rnn
蒸蒸yyyyzwd14 分钟前
DDIA p100-118阅读笔记
笔记
Heartache boy21 分钟前
野火STM32_HAL库版课程笔记-TIM通用定时器基础中断应用
笔记·stm32·单片机·嵌入式硬件
青桔柠薯片21 分钟前
ARM 体系架构基础学习笔记
arm开发·学习·架构
啵啵鱼爱吃小猫咪21 分钟前
franka阻抗控制项目
人工智能·学习·机器人
龘龍龙22 分钟前
大模型学习(二)-RAG、LangChain
学习·langchain