cdn 网站的选择
- 我习惯使用 unpkg, 因为其跟 npm 绑定, 软件包发布到 npm 上, 就可以使用该cdn
使用方式, 使用 moment 作为例子
- 在 npm 网站中搜索 moment
- 点开 code 标签
- 观察目录结构, 直接目录下没有 min.js 结尾文件, 但是有个 min 目录
- 点开 min 目录, 发现
locales.min.js
moment-with-locales.min.js
moment.min.js
- 根据项目了解, 这三个文件分别对应 moment 本地化, moment 本体 + moment 本地化, moment 本体(不含本地化)
- 依据习惯, 使用
moment-with-locales.min.js
- 手动拼接目录: https://unpkg.com/moment/min/moment-with-locales.min.js 并点击访问
- 目录访问成功, 证明路径没有问题
- 将路径组装为 js 标签:
<script src="https://unpkg.com/moment/min/moment-with-locales.min.js" />
- 将 js 标签放到 h5 中
- 在 h5 js 代码中使用:
console.log(moment)
例外情况
- 大部分情况下, 使用 cdn 导入的包会生成一个与包名相同的变量, 如 moment 包, 会生成 moment 变量, 直接在 h5 代码中调用即可
- 然而少部分包, 由于使用量大, 其生成的变量名与包名不同, 而是使用一些符号, 例子如下:
- lodash => _
- jquery => $
如何寻找全局变量名, 以 lodash 为例
查看源码
- 浏览器中搜索:
unpkg lodash
, 点击进入网页版或者直接拼接链接进入网页版:
https://unpkg.com/browse/lodash@4.17.21/
最后一个 / 不能省略 - 依据经验, 搜索
lodash.js
, 点开查看源码如下
也可能叫其他的, 如 index.js, lodash.mjs 等
也可以直接查看lodash.min.js
, 因为代码压缩过, 可读性不好, 需要复制下来通过编辑器格式化后查看
不想下载也可以试试通过浏览器的请求预览, 看是否能够格式化代码
1 | ;(function() { |
- 省略的都是定义方法的代码, 不会实际执行
- 依据经验, global, self 等全局变量是 import 之前时代的 打包约定, 这里忽略即可
- 所以 root 变量即为 this, 所以在 h5 中直接使用 _ 即可获得 lodash 对象, 并调用 debounce 等方法