webpack写jquery插件的环境配置


Posted in jQuery onDecember 21, 2017

客户需求要一个具备树结构、带复选框的下拉选择控件;在网上找到了select2、autocomplete都不满足要求。于是自己用ztree加bootstrap dropdown组合开发了一个下拉树选择控件。决定用webpack打包,开发一个完整的jquery控件,顺便系统的学习一下webpack。

目录结构:

webpack写jquery插件的环境配置

package.json配置:

{
 "name": "select-tree",
 "version": "0.0.1",
 "description": "下拉树形选择,带复选框",
 "license": "MIT",
 "author": "kaikai",
 "repository": "https://gitee.com/hkgit/select-tree",
 "scripts": {
  "start": "webpack --watch",
  "build": "webpack --config webpack.config.js"
 },
 "dependencies": {
  "jquery": "~1.12.4",
  "bootstrap": "^3.3.7",
  "jquery-slimscroll": "latest",
  "ztree": "latest"
 },
 "devDependencies": {
  "css-loader": "^0.28.7",
  "html-webpack-plugin": "^2.30.1",
  "style-loader": "^0.19.1",
  "uglifyjs-webpack-plugin": "^1.1.4",
  "webpack": "^3.10.0"
 },
 "bugs": {
  "url": "https://gitee.com/hkgit/select-tree/issues"
 },
 "keywords": [
  "javascript",
  "select",
  "tree",
  "checkbox"
 ]
}

说明:jquery用1.12的版本是为了兼容IE9浏览器,开发环境用的webpack's Watch Mode,由于项目比较小,调试就直接用chrome打开dist/select-tree.html文件。

webpack.config.js代码:

const path = require('path');
const webpack = require('webpack');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const UglifyJSPlugin = require('uglifyjs-webpack-plugin');

module.exports = {
  entry: {
    vendor: ['jquery'], // 把需要引入的插件单独分出一个入口,和插件主体分开
    main: './src/select-tree.js'
  },
  output: {
    filename: 'select-tree-min.js',
    path: path.resolve(__dirname, './dist'),
    library: 'selectTree', // 插件名称
    libraryTarget: 'umd' // 插件支持CommonJS2,CommonJS,amd,var
  },
  // resolve: { // npm下载的jquery不需要制定路径
  //   modules: [path.join(__dirname, "node_modules")],
  //   alias: {
  //     jquery: 'jquery/dist/jquery.js'
  //   }
  // },
  module: {
    rules: [{
      test: /\.css$/,
      use: ['style-loader', 'css-loader']
    }]
  },
  plugins: [
    new HtmlWebpackPlugin({ // 自动生成html
      template: './src/select-tree.html',
      filename: 'select-tree.html'
    }),
    new UglifyJSPlugin({ // 压缩代码
      sourceMap: true
    }),
    new webpack.optimize.CommonsChunkPlugin({ // 单独打包jq插件,此插件的依赖库单独抽出来,不影响插件的开发
      name: "vendor",
      filename: "vendor.min.js"
    }),
    new webpack.ProvidePlugin({ // 自动加载jq
      $: 'jquery',
      jQuery: 'jquery'
    })
  ],
  devtool: 'source-map' // 方便调试
};

说明:重点在output.library和output.libraryTarget

以上就是我们给大家整理的本篇文章的全部内容,如果大家还有任何明白的地方可以在下方的留言区域讨论,感谢对三水点靠木的支持。

jQuery 相关文章推荐
jQuery实现节点的追加、替换、删除、复制功能示例
Jul 11 jQuery
jquery获取链接地址和跳转详解(推荐)
Aug 15 jQuery
jQuery幻灯片插件owlcarousel参数说明中文文档
Feb 27 jQuery
jquery的 filter()方法使用教程
Mar 22 jQuery
JS与jQuery实现ListBox上移,下移,左移,右移操作功能示例
May 31 jQuery
jQuery实现点击自身以外区域关闭弹出层功能完整示例【改进版】
Jul 31 jQuery
jQuery实现基本动画效果的方法详解
Sep 06 jQuery
jquery实现二级导航下拉菜单效果实例
May 14 jQuery
JavaScript前端页面搜索功能案例【基于jQuery】
Jul 10 jQuery
jQuery实现获取多选框的值示例
Feb 07 jQuery
jQuery插件实现图片轮播效果
Oct 19 jQuery
多种类型jQuery网页验证码插件代码实例
Jan 09 jQuery
jQuery进阶实践之利用最优雅的方式如何写ajax请求
Dec 20 #jQuery
jQuery实现动态控制页面元素的方法分析
Dec 20 #jQuery
jquery自定义显示消息数量
Dec 19 #jQuery
jquery实现侧边栏左右伸缩效果的示例
Dec 19 #jQuery
jquery中done和then的区别(详解)
Dec 19 #jQuery
jQuery实现弹窗下底部页面禁止滑动效果
Dec 19 #jQuery
jQuery实现点击DIV同时点击CheckBox,并为DIV上背景色的实例
Dec 18 #jQuery
You might like
全国FM电台频率大全 - 22 重庆市
2020/03/11 无线电
用PHP调用数据库的存贮过程
2006/10/09 PHP
一个PHP分页类的代码
2011/05/18 PHP
php通过数组实现多条件查询实现方法(字符串分割)
2014/05/06 PHP
PHP之uniqid()函数用法
2014/11/03 PHP
PHP实现的同步推荐操作API接口案例分析
2016/11/30 PHP
PHP常见字符串操作函数与用法总结
2019/03/04 PHP
mac pecl 安装php7.1扩展教程
2019/10/17 PHP
JQuery的AJAX实现文件下载的小例子
2013/05/15 Javascript
js实现单行文本向上滚动效果实例代码
2013/11/28 Javascript
Jquery操作js数组及对象示例代码
2014/05/11 Javascript
JavaScript中的函数的两种定义方式和函数变量赋值
2014/05/12 Javascript
jquery实现的仿天猫侧导航tab切换效果
2015/08/24 Javascript
JS不用正则验证输入的字符串是否为空(包含空格)的实现代码
2016/06/14 Javascript
Node.js开启Https的实践详解
2016/10/25 Javascript
使用JavaScript获取URL中的参数(两种方法)
2016/11/16 Javascript
微信小程序 设置启动页面的两种方法
2017/03/09 Javascript
微信扫码支付零云插件版实例详解
2017/04/26 Javascript
ReactJS实现表单的单选多选和反选的示例
2017/10/13 Javascript
vue登录注册及token验证实现代码
2017/12/14 Javascript
vue.js层叠轮播效果的实例代码
2018/11/08 Javascript
JavaScript数据结构与算法之二叉树添加/删除节点操作示例
2019/03/01 Javascript
Javascript之高级数组API的使用实例
2019/03/08 Javascript
JavaScript中break、continue和return的用法区别实例分析
2020/03/02 Javascript
一篇文章带你使用Typescript封装一个Vue组件(简单易懂)
2020/06/05 Javascript
[49:21]TNC vs VG 2019DOTA2国际邀请赛淘汰赛 胜者组赛BO3 第三场 8.20.mp4
2019/08/22 DOTA
Python创建系统目录的方法
2015/03/11 Python
简单介绍使用Python解析并修改XML文档的方法
2015/10/15 Python
python使用wmi模块获取windows下的系统信息 监控系统
2015/10/27 Python
基于python3 OpenCV3实现静态图片人脸识别
2018/05/25 Python
python实现通过flask和前端进行数据收发
2019/08/22 Python
春节到了 教你使用python来抢票回家
2020/01/06 Python
耐克美国官网:Nike.com
2016/08/01 全球购物
感恩老师演讲稿400字
2014/08/28 职场文书
OpenCV-Python使用cv2实现傅里叶变换
2021/06/09 Python
Java设计模式之代理模式
2022/04/22 Java/Android