博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
webpack4 系列教程(十二):处理第三方JavaScript库
阅读量:5739 次
发布时间:2019-06-18

本文共 1772 字,大约阅读时间需要 5 分钟。

教程所示图片使用的是 github 仓库图片,网速过慢的朋友请移步。或者来我的小站看更多内容:

0. 课程介绍和资料

本节课的代码目录如下:

27.png

本节课的package.json内容如下:

{  "dependencies": {    "jquery": "^3.3.1"  },  "devDependencies": {    "webpack": "^4.16.1"  }}

1. 如何使用和管理第三方JS库?

项目做大之后,开发者会更多专注在业务逻辑上,其他方面则尽力使用第三方JS库来实现。

由于js变化实在太快,所以出现了多种引入和管理第三方库的方法,常用的有 3 中:

  1. CDN:<script></script>标签引入即可
  2. npm 包管理: 目前最常用和最推荐的方法
  3. 本地js文件:一些库由于历史原因,没有提供es6版本,需要手动下载,放入项目目录中,再手动引入。

针对第一种和第二种方法,各有优劣,有兴趣可以看这篇:

针对第三种方法,如果没有webpack,则需要手动引入import或者require来加载文件;但是,webpack提供了alias的配置,配合webpack.ProvidePlugin这款插件,可以跳过手动入,直接使用!

2. 编写入口文件

如项目目录图片所展示的,我们下载了jquery.min.js,放到了项目中。同时,我们也通过npm安装了jquery

为了尽可能模仿生产环境,app.js中使用了$来调用 jq,还使用了jQuery来调用 jq。

因为正式项目中,由于需要的依赖过多,挂载到window对象的库,很容易发生命名冲突问题。此时,就需要重命名库。例如:$就被换成了jQuery

// app.js$("div").addClass("new");jQuery("div").addClass("old");// 运行webpack后// 浏览器打开 index.html, 查看 div 标签的 class

3. 编写配置文件

webpack.ProvidePlugin参数是键值对形式,键就是我们项目中使用的变量名,值就是键所指向的库。

webpack.ProvidePlugin会先从npm安装的包中查找是否有符合的库。

如果webpack配置了resolve.alias选项(理解成“别名”),那么webpack.ProvidePlugin就会顺着这条链一直找下去。

// webpack.config.jsconst path = require("path");const webpack = require("webpack");module.exports = {  entry: {    app: "./src/app.js"  },  output: {    publicPath: __dirname + "/dist/",    path: path.resolve(__dirname, "dist"),    filename: "[name].bundle.js",    chunkFilename: "[name].chunk.js"  },  resolve: {    alias: {      jQuery$: path.resolve(__dirname, "src/vendor/jquery.min.js")    }  },  plugins: [    new webpack.ProvidePlugin({      $: "jquery", // npm      jQuery: "jQuery" // 本地Js文件    })  ]};

4. 结果分析和验证

老规矩,根绝上面配置,先编写一下index.html

  
Document

命令行运行webpack进行项目打包:

28.png

在 Chrome 中打开index.html。如下图所示,<div>标签已经被添加上了oldnew两个样式类。证明在app.js中使用的$jQuery都成功指向了jquery库。

29.png

转载于:https://www.cnblogs.com/geyouneihan/p/9769808.html

你可能感兴趣的文章
Python with Context Managers
查看>>
zuul源码分析之Filter管理
查看>>
haskell的安装
查看>>
shell练习(12)——批量生成用户,并设置密码
查看>>
[翻译]为什么程序员总是写不安全的代码
查看>>
Style Intelligence应用之电商存货周转率分析
查看>>
Xen Desktop计算机目录添加计算机计数重置
查看>>
玩转CocoaPods
查看>>
linux安装方式
查看>>
ipsec在企业网中的应用
查看>>
多平台消息推送是安卓耗电原因之一?
查看>>
Linux下安装awstats日志统计分析
查看>>
安装BURG美化
查看>>
rhel6 yum源配置文件
查看>>
我的友情链接
查看>>
使用dockerfile构建镜像
查看>>
创建Android虚拟机AVD时ok按钮无法点亮
查看>>
Subversion 和 GIT 开发者演进
查看>>
About LoadRunner
查看>>
PostgreSQL使用with一例
查看>>