直到 前面一节 ,我们已经可以使用webpack的loader、插件在写配置文件等实现css,js,html的压缩转换。 本节主要介绍,怎么在项目打包已经成熟的js,例如jQuery,图表js等。
一、将jQuery 安装到已存在的项目
npm i jquery -D
在index.js 中加入以下代码打印jquery
import $ from 'jquery'
console.log($)
复制代码
浏览器加载输出的html看下控制台,确实是打印了。
我们在看下这个$是否加载到了window下?
console.log(window.$)
复制代码
npm run dev
浏览器加载下瞅瞅。显示未定义!
这个可能不能满足很多开发场景使用。
二、使用内联方式将jQuery挂载到window
这里又需要了解一个loader
expose-loader
同样在项目下
npm i expose-loader -D
然后在index.js 修改下引用jquery的方式
import $ from 'expose-loader?$!jquery' // 将jquery暴露成$
console.log($)
console.log('window:'+ window.$)
复制代码
执行
npm run dev
在浏览器查询效果
三、通过webpack 配置module方式加载jquery
test:require.resolve('jquery'),
use: [{
loader: 'expose-loader?$'
2.将index.js修改为原来引用方式
import $ from 'jquery';
console.log($);
console.log('window:'+ window.$);
npm run dev
浏览器查看下结果,同样是准确输入了。
import $ from 'jquery'
复制代码
打包输出的index.js文件明显增大
index.c03fc495.js 321 KiB main [emitted] [immutable] main
复制代码
不使用
index.c5f107a6.js 5.52 KiB main [emitted] [immutable] main
复制代码
怎么去除?我们选择在配置文件加入一个新属性忽略jquery。
在打包看下,ok了。
index.ff3d059d.js 6.12 KiB main [emitted] [immutable] main
复制代码
上面index.js是加了hash了,只是看上去不一样!
创建文件夹,cd至已创建文件夹,执行 git clone https://gitee.com/dolan_ge/webpack.git -b webpack_others_m
。
进入工程目录,执行 npm install -D
。