webpack写jquery插件的环境配置

 更新时间:2017年12月21日 08:42:45   投稿:laozhang  
本篇文章给大家讲述了用webpack开发jquery插件需要的环境以及配置讲解,有需要的读者们参考下吧。

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

目录结构:

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实现数字加减效果汇总

    本文将介绍常见的几种使用spinner数字微调器来实现数字加减的功能的方法。非常的简单实用,这里推荐给大家
    2014-12-12
  • jquery.ui.draggable中文文档(原文翻译)

    jquery.ui.draggable中文文档(原文翻译)

    jquery.ui.draggable中文文档(原文翻译)。需要的朋友可以过来参考下,希望对大家有所帮助
    2013-11-11
  • jQuery实现切换页面过渡动画效果

    jQuery实现切换页面过渡动画效果

    这是一款效果非常酷的jQuery和CSS3通过AJAX调用切换页面过渡动画特效插件。该页面切换特效使用AJAX来动态加载链接内容,在页面加载的时候,使用CSS3来制作非常酷的页面过渡动画效果。插件中使用pushState方法来管理浏览器的浏览历史,需要的朋友可以参考下
    2015-10-10
  • MultiSelect左右选择控件的设计与实现介绍

    MultiSelect左右选择控件的设计与实现介绍

    由于项目中用到左右选择的控件,网上找了一些相关的实现,基本上有两个:1、基于JQuery UI的控件2、某个兄弟手写的一个控件,具体实现如下,感兴趣的朋友可以参考下哈
    2013-06-06
  • jQuery设计思想完整篇

    jQuery设计思想完整篇

    据统计,全世界排名前100万的网站,有46%使用jQuery,远远超过其他库。微软公司甚至把jQuery作为他们的官方库。
    2011-08-08
  • jQuery可见性过滤器:hidden和:visibility用法实例

    jQuery可见性过滤器:hidden和:visibility用法实例

    这篇文章主要介绍了jQuery可见性过滤器:hidden和:visibility用法,实例分析了:hidden和:visibility的功能及相关使用技巧,需要的朋友可以参考下
    2015-06-06
  • jQuery轮播图功能实现方法

    jQuery轮播图功能实现方法

    这篇文章主要为大家详细介绍了jQuery轮播图功能实现方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05
  • jQuery无刷新上传之uploadify简单代码

    jQuery无刷新上传之uploadify简单代码

    项目需要实现一个无刷新批量文件上传功能,仔细研究了下,发现JQuery 提供的Uploadify插件十分不错,有兴趣的可以了解一下。
    2017-01-01
  • jQuery实现响应浏览器缩放大小并改变背景颜色

    jQuery实现响应浏览器缩放大小并改变背景颜色

    这篇文章主要介绍了jQuery实现响应浏览器缩放大小并改变背景颜色,比较实用,也很简单,使用到了一个resize事件需要的朋友可以参考下
    2014-10-10
  • jQuery 淡出一个图像到另一个图像的实现代码

    jQuery 淡出一个图像到另一个图像的实现代码

    这篇文章主要介绍了jquery的hover事件实现两个图片的淡出切换效果,需要的朋友可以参考下
    2013-06-06

最新评论