Webpack4 学习笔记四 暴露全局变量、externals
前言
此内容是个人学习笔记,以便日后翻阅。非教程,如有错误还请指出
webpack 暴露全局变量
- 通过 expose-loader 内联配置
- 在 webpack中配置
- 每个模块通过注入的方式
- 通过CDN的方式引入一个库,并通过 webpack在项目中优化
通过 expose-loader 内联配置
cnpm i jquery --save 安装 jquery库
import $ from 'jquery'
console.log($) // 可以访问
console.log(window.$) // undefined
expose-loader 加载程序向全局对象添加模块
cnpm i expose-loader --save-dev
将jquery暴露至全局并用$引用
webpack配置
入口文件
import $ from 'expose-loader?$!jquery'
console.log(window.$)
在 webpack中配置
module.exports = {
module: {
rules: [
{
test: require.resolve('jquery'),
loader: 'expose-loader?$'
}
]
}
}
入口文件直接引用jquery,也可以全局访问
import $ from 'jquery'
console.log(window.$)
每个模块通过注入的方式
webpack插件 ProvidePlugin
ProvidePlugin 自动加载模块, 而不必导出 import 或 require。
webpack配置
const webpack = require('webpack')
module.exports = {
plugins: [
new webpack.ProvidePlugin({
$: 'jquery'
})
]
}
通过CDN的方式引入一个库,并通过 webpack在项目中优化
如果我需要使用CDN的方式引入了好多工具库, 比如 jquery, echarts等等。
在模版文件中引入cdn工具库,。
如下配置:
// 入口文件
import $ from 'jquery'
console.log($)
//webpack配置
module.exports = {
externals: {
jquery: 'jQuery'
}
}
其实,我们使用这种方式的另一个目的是为了压缩工程大小,如果所有的依赖包都压缩打包到应用中,尤其是echart这样的大型库,会导致文件过大,如果外部引入,按需引入,可以压缩应用大小。
笔记地址
Webpack4 学习笔记四 暴露全局变量、externals的更多相关文章
- C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻
前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...
- IOS学习笔记(四)之UITextField和UITextView控件学习
IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...
- java之jvm学习笔记四(安全管理器)
java之jvm学习笔记四(安全管理器) 前面已经简述了java的安全模型的两个组成部分(类装载器,class文件校验器),接下来学习的是java安全模型的另外一个重要组成部分安全管理器. 安全管理器 ...
- Learning ROS for Robotics Programming Second Edition学习笔记(四) indigo devices
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...
- Typescript 学习笔记四:回忆ES5 中的类
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
- ES6学习笔记<四> default、rest、Multi-line Strings
default 参数默认值 在实际开发 有时需要给一些参数默认值. 在ES6之前一般都这么处理参数默认值 function add(val_1,val_2){ val_1 = val_1 || 10; ...
- muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制
目录 muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制 eventfd的使用 eventfd系统函数 使用示例 EventLoop对eventfd的封装 工作时序 runInLoo ...
- python3.4学习笔记(四) 3.x和2.x的区别,持续更新
python3.4学习笔记(四) 3.x和2.x的区别 在2.x中:print html,3.x中必须改成:print(html) import urllib2ImportError: No modu ...
- Go语言学习笔记四: 运算符
Go语言学习笔记四: 运算符 这章知识好无聊呀,本来想跨过去,但没准有初学者要学,还是写写吧. 运算符种类 与你预期的一样,Go的特点就是啥都有,爱用哪个用哪个,所以市面上的运算符基本都有. 算术运算 ...
随机推荐
- java高级篇
Method对象可以得到任何一个类的任何方法的定义(只需要传入方法的名字和参数即可) class Ming { private void speak() { System.out.println(&q ...
- drop_caches控制page cache
drop_caches Writing to this will cause the kernel to drop clean caches, as well as reclaimable slab ...
- android shape.xml 属性详解
转载源:http://blog.csdn.net/harvic880925/article/details/41850723 一.简单使用 刚开始,就先不讲一堆标签的意义及用法,先简单看看shape标 ...
- POJ 3660—— Cow Contest——————【Floyd传递闭包】
Cow Contest Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit ...
- 关于微信小程序登录授权
小程序的API接口文档写的很清晰,现在理一遍思路. 前端通过wx.login()获取code ,把code发给后台,后台返回openid,再获取用户的授权信息(这里先判断是否授权,授权过的就直接进入小 ...
- 三、oracle 表空间
SQL> --清除屏幕信息 SQL> clear screen SQL> --查看表空间 SQL> select * from v$tablespace; SQL> -- ...
- Hibernate课程 初探一对多映射3-3 单向多对一的测试
public static void testManyToOne(){ Student stu1 = new Student("小明","男"); Studen ...
- aliyun maven repository
<mirrors> <mirror> <id>alimaven</id> <name>aliyun maven</name> & ...
- python随笔--根据号码查询归属地
给定一组(串)数据,根据输入得号码,查询归属地 def num_info(num): info0 = """5583|1860100|010|北京市|北京联通GSM卡 5 ...
- 移动端纯CSS3制作圆形进度条所遇到的问题
近日在开发的页面中,需要制作一个动态的圆形进度条,首先想到的是利用两个矩形,宽等于直径的一半,高等于直径,两个矩形利用浮动贴在一起,设置overflow:hidden属性,作为盒子,内部有一个与其宽高 ...