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实现的背景颜色渐变动画效果示例
Mar 24 jQuery
jQuery中的deferred使用方法
Mar 27 jQuery
jQuery实现简单的滑动导航代码(移动端)
May 22 jQuery
jquery实现一个全局计时器(商城可用)
Jun 30 jQuery
jQuery Collapse1.1.0折叠插件简单使用
Aug 28 jQuery
jquery实现倒计时小应用
Sep 19 jQuery
bootstrap+jquery项目引入文件报错的解决方法
Jan 22 jQuery
基于jQuery实现的设置文本区域的光标位置
Jun 15 jQuery
jQuery实现模糊搜索功能的方法分析
Jun 29 jQuery
jQuery选择器之基本选择器用法实例分析
Feb 19 jQuery
JQuery通过键盘控制键盘按下与松开触发事件
Aug 07 jQuery
jQuery zTree如何改变指定节点文本样式
Oct 16 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
咖啡与水的关系
2021/03/03 冲泡冲煮
一些被忽视的PHP函数(简单整理)
2010/04/30 PHP
基于Zend的Captcha机制的应用
2013/05/02 PHP
php 解析xml 的四种方法详细介绍
2016/10/26 PHP
Jquery Ajax的Get方式时需要注意URL地方
2011/04/07 Javascript
Javascript 函数parseInt()转换时出现bug问题
2014/05/20 Javascript
jQuery控制网页打印指定区域的方法
2015/04/07 Javascript
jquery实现浮动在网页右下角的彩票开奖公告窗口代码
2015/09/04 Javascript
jquery 表单验证之通过 class验证表单不为空
2015/11/02 Javascript
深入理解$.each和$(selector).each
2016/05/15 Javascript
JavaScript编写Chrome扩展实现与浏览器的交互及时间通知
2016/05/16 Javascript
深入浅析JavaScript中的arguments对象(强力推荐)
2016/06/03 Javascript
BootstrapTable+KnockoutJS自定义T4模板快速生成增删改查页面
2016/08/01 Javascript
JavaScript和jQuery制作光棒效果
2017/02/24 Javascript
微信小程序 图片宽高自适应详解
2017/05/11 Javascript
AngularJS折叠菜单实现方法示例
2017/05/18 Javascript
JS Testing Properties 判断属性是否在对象里的方法
2017/10/01 Javascript
js装饰设计模式学习心得
2018/02/17 Javascript
React.js组件实现拖拽排序组件功能过程解析
2020/04/27 Javascript
JavaScript ES6 Class类实现原理详解
2020/05/08 Javascript
layui使用及简单的三级联动实现教程
2020/12/01 Javascript
[01:13]DOTA2群星解读国服召集令 一起说出回归的理由
2013/07/17 DOTA
python转换摩斯密码示例
2014/02/16 Python
Python使用ntplib库同步校准当地时间的方法
2016/07/02 Python
Python针对给定字符串求解所有子序列是否为回文序列的方法
2018/04/21 Python
python实现Zabbix-API监控
2018/09/17 Python
基于python实现把图片转换成素描
2019/11/13 Python
Python 自由定制表格的实现示例
2020/03/20 Python
Python读入mnist二进制图像文件并显示实例
2020/04/24 Python
可口可乐唇膏:Lip Smackers
2019/08/27 全球购物
参观考察邀请函范文
2014/01/29 职场文书
学习两会精神心得范文
2014/03/17 职场文书
2014普法依法治理工作总结
2014/12/18 职场文书
廉政承诺书
2015/01/19 职场文书
2016幼儿园中班开学寄语
2015/12/03 职场文书
Golang 字符串的常见操作
2022/04/19 Golang