From 01eca7d2a3f936eab81b90379f65a8ecc9c23d10 Mon Sep 17 00:00:00 2001 From: ayou Date: Wed, 7 Mar 2018 22:03:07 +0800 Subject: [PATCH] add dev mode, update readme --- .npmignore | 2 +- .../webpack.base.conf.js | 20 +- build/webpack.build.conf.js | 16 + build/webpack.dev.conf.js | 28 + dev/App.vue | 84 ++ dev/index.html | 11 + dev/index.js | 9 + dist/vue-tree-list.min.js | 1072 ++++++++++++++++- package.json | 19 +- readme.md | 132 +- 10 files changed, 1294 insertions(+), 99 deletions(-) rename webpack.config.js => build/webpack.base.conf.js (65%) create mode 100644 build/webpack.build.conf.js create mode 100644 build/webpack.dev.conf.js create mode 100644 dev/App.vue create mode 100644 dev/index.html create mode 100644 dev/index.js diff --git a/.npmignore b/.npmignore index 8b76359..e3c81af 100644 --- a/.npmignore +++ b/.npmignore @@ -9,4 +9,4 @@ test .babelrc .travis.yml karma.conf.js -webpack.config.js \ No newline at end of file +build \ No newline at end of file diff --git a/webpack.config.js b/build/webpack.base.conf.js similarity index 65% rename from webpack.config.js rename to build/webpack.base.conf.js index e5a18b4..0d6cd0c 100644 --- a/webpack.config.js +++ b/build/webpack.base.conf.js @@ -1,14 +1,9 @@ var webpack = require('webpack'); var path = require('path'); +var projectRoot = path.resolve(__dirname, '../') + module.exports = { - entry: './src/index.js', - output: { - path: path.resolve(__dirname, 'dist'), - filename: 'vue-tree-list.min.js', - library: 'VueTreeList', - libraryTarget: 'umd' - }, module: { loaders: [ { @@ -18,7 +13,7 @@ module.exports = { { test: /\.js$/, loader: 'babel', - include: [path.join(__dirname, 'src')], + include: [path.join(projectRoot, 'src'), path.join(projectRoot, 'dev')], exclude: /node_modules/ }, { @@ -40,12 +35,5 @@ module.exports = { browsers: ['iOS >= 7', 'Android >= 4.1'] }) ] - }, - plugins: [ - new webpack.optimize.UglifyJsPlugin({ - compress: { - warnings: false - } - }) - ] + } } diff --git a/build/webpack.build.conf.js b/build/webpack.build.conf.js new file mode 100644 index 0000000..1a43175 --- /dev/null +++ b/build/webpack.build.conf.js @@ -0,0 +1,16 @@ +var webpack = require('webpack') +var merge = require('webpack-merge') +var baseConfig = require('./webpack.base.conf') +var path = require('path') + +var projectRoot = path.resolve(__dirname, '../') + +module.exports = merge(baseConfig, { + entry: './src/index.js', + output: { + path: path.resolve(projectRoot, 'dist'), + filename: 'vue-tree-list.min.js', + library: 'VueTreeList', + libraryTarget: 'umd' + } +}) diff --git a/build/webpack.dev.conf.js b/build/webpack.dev.conf.js new file mode 100644 index 0000000..612ad9d --- /dev/null +++ b/build/webpack.dev.conf.js @@ -0,0 +1,28 @@ +var webpack = require('webpack') +var merge = require('webpack-merge') +var HtmlWebpackPlugin = require('html-webpack-plugin') +var baseConfig = require('./webpack.base.conf') +var path = require('path') + +var projectRoot = path.resolve(__dirname, '../') + +module.exports = merge(baseConfig, { + entry: './dev/index.js', + devServer: { + historyApiFallback: true, + noInfo: true, + overlay: true, + open: true, + hot: true, + inline: true + }, + devtool: '#eval-source-map', + plugins: [ + new HtmlWebpackPlugin({ + template: './dev/index.html', + filename: 'index.html', + inject: true + }), + new webpack.HotModuleReplacementPlugin() + ] +}) \ No newline at end of file diff --git a/dev/App.vue b/dev/App.vue new file mode 100644 index 0000000..2f4b9b2 --- /dev/null +++ b/dev/App.vue @@ -0,0 +1,84 @@ + + diff --git a/dev/index.html b/dev/index.html new file mode 100644 index 0000000..dbd5b88 --- /dev/null +++ b/dev/index.html @@ -0,0 +1,11 @@ + + + + + vue-date-range + + +
+ + \ No newline at end of file diff --git a/dev/index.js b/dev/index.js new file mode 100644 index 0000000..b56b2f8 --- /dev/null +++ b/dev/index.js @@ -0,0 +1,9 @@ +/** + * Created by ayou on 18/3/7. + */ +import Vue from 'vue' +import App from './App.vue' + +new Vue({ + render: h => h(App) +}).$mount('#app') \ No newline at end of file diff --git a/dist/vue-tree-list.min.js b/dist/vue-tree-list.min.js index 40e04e2..989d575 100644 --- a/dist/vue-tree-list.min.js +++ b/dist/vue-tree-list.min.js @@ -1 +1,1071 @@ -!function(A,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.VueTreeList=e():A.VueTreeList=e()}(this,function(){return function(A){function e(i){if(t[i])return t[i].exports;var M=t[i]={exports:{},id:i,loaded:!1};return A[i].call(M.exports,M,M.exports,e),M.loaded=!0,M.exports}var t={};return e.m=A,e.c=t,e.p="",e(0)}([function(A,e,t){"use strict";e.VueTreeList=t(1),e.TreeNode=t(13).TreeNode,e.Tree=t(13).Tree},function(A,e,t){t(2);var i=t(11)(t(12),t(15),"data-v-f6d9fc8a",null);A.exports=i.exports},function(A,e,t){var i=t(3);"string"==typeof i&&(i=[[A.id,i,""]]),i.locals&&(A.exports=i.locals);t(9)("c9ed4450",i,!0)},function(A,e,t){e=A.exports=t(4)(),e.push([A.id,"@font-face{font-family:icomoon;src:url("+t(5)+");src:url("+t(5)+'#iefix) format("embedded-opentype"),url('+t(6)+') format("truetype"),url('+t(7)+') format("woff"),url('+t(8)+'#icomoon) format("svg");font-weight:400;font-style:normal}.vue-tree-icon[data-v-f6d9fc8a]{font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.vue-tree-icon.item-icon[data-v-f6d9fc8a]{margin-right:4px}.vue-tree-icon.item-icon[data-v-f6d9fc8a]:hover{color:inherit}.vue-tree-icon[data-v-f6d9fc8a]:hover{color:blue}.icon-file[data-v-f6d9fc8a]:before{content:"\\E906"}.icon-folder[data-v-f6d9fc8a]:before{content:"\\E907"}.icon-caret-down[data-v-f6d9fc8a]:before{content:"\\E900"}.icon-caret-right[data-v-f6d9fc8a]:before{content:"\\E901"}.icon-edit[data-v-f6d9fc8a]:before{content:"\\E902"}.icon-folder-plus-e[data-v-f6d9fc8a]:before{content:"\\E903"}.icon-plus[data-v-f6d9fc8a]:before{content:"\\E904"}.icon-trash[data-v-f6d9fc8a]:before{content:"\\E905"}.border[data-v-f6d9fc8a]{height:5px}.border.up[data-v-f6d9fc8a]{margin-top:-5px}.border.bottom[data-v-f6d9fc8a],.border.up[data-v-f6d9fc8a]{background-color:transparent}.border.active[data-v-f6d9fc8a]{border-bottom:3px dashed blue}.tree-node[data-v-f6d9fc8a]{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;padding:5px 0 5px 1rem}.tree-node .input[data-v-f6d9fc8a]{border:none;max-width:150px;border-bottom:1px solid blue}.tree-node[data-v-f6d9fc8a]:hover{background-color:#f0f0f0}.tree-node.active[data-v-f6d9fc8a]{outline:2px dashed pink}.tree-node .caret[data-v-f6d9fc8a]{margin-left:-1rem}.tree-node .operation[data-v-f6d9fc8a]{margin-left:2rem;letter-spacing:1px}.item[data-v-f6d9fc8a]{cursor:pointer}.tree-margin[data-v-f6d9fc8a]{margin-left:2em}',""])},function(A,e){A.exports=function(){var A=[];return A.toString=function(){for(var A=[],e=0;et.parts.length&&(i.parts.length=t.parts.length)}else{for(var o=[],M=0;M0&&this.initNode(o,n.children),A.addChildren(o)}},e.Tree=t,e.TreeNode=M},function(A,e){"use strict";var t;e.addHandler=function(A,e,i){t=i,A.addEventListener?A.addEventListener(e,i,!1):A.attachEvent?A.attachEvent("on"+e,i):A["on"+e]=i},e.removeHandler=function(A,e){A.removeEventListener?A.removeEventListener(e,t,!1):A.detachEvent?A.detachEvent("on"+e,t):A["on"+e]=null}},function(A,e){A.exports={render:function(){var A=this,e=A.$createElement,t=A._self._c||e;return t("div",["root"!==A.model.name?t("div",[t("div",{staticClass:"border up",class:{active:A.isDragEnterUp},on:{drop:A.dropUp,dragenter:A.dragEnterUp,dragover:A.dragOverUp,dragleave:A.dragLeaveUp}}),A._v(" "),t("div",{staticClass:"tree-node",class:{active:A.isDragEnterNode},attrs:{id:A.model.id,draggable:!A.model.dragDisabled},on:{dragstart:A.dragStart,dragover:A.dragOver,dragenter:A.dragEnter,dragleave:A.dragLeave,drop:A.drop,dragend:A.dragEnd,mouseover:A.mouseOver,mouseout:A.mouseOut,click:function(e){e.stopPropagation(),A.click(e)}}},[A.model.children&&A.model.children.length>0?t("span",{staticClass:"caret icon is-small"},[t("i",{staticClass:"vue-tree-icon",class:A.caretClass,on:{click:function(e){e.preventDefault(),e.stopPropagation(),A.toggle(e)}}})]):A._e(),A._v(" "),A.model.isLeaf?t("span",[A._t("leafNodeIcon",[t("i",{staticClass:"vue-tree-icon item-icon icon-file"})])],2):t("span",[A._t("treeNodeIcon",[t("i",{staticClass:"vue-tree-icon item-icon icon-folder"})])],2),A._v(" "),A.editable?t("input",{ref:"nodeInput",staticClass:"vue-tree-input",attrs:{type:"text"},domProps:{value:A.model.name},on:{input:A.updateName,blur:A.setUnEditable}}):t("div",{staticClass:"node-content"},[A._v("\n "+A._s(A.model.name)+"\n ")]),A._v(" "),t("div",{directives:[{name:"show",rawName:"v-show",value:A.isHover,expression:"isHover"}],staticClass:"operation"},[A.model.isLeaf?A._e():t("span",{attrs:{title:"add tree node"},on:{click:function(e){e.stopPropagation(),e.preventDefault(),A.addChild(!1)}}},[A._t("addTreeNode",[t("i",{staticClass:"vue-tree-icon icon-folder-plus-e"})])],2),A._v(" "),A.model.isLeaf?A._e():t("span",{attrs:{title:"add tree node"},on:{click:function(e){e.stopPropagation(),e.preventDefault(),A.addChild(!0)}}},[A._t("addLeafNode",[t("i",{staticClass:"vue-tree-icon icon-plus"})])],2),A._v(" "),t("span",{attrs:{title:"edit"},on:{click:function(e){e.stopPropagation(),e.preventDefault(),A.setEditable(e)}}},[A._t("edit",[t("i",{staticClass:"vue-tree-icon icon-edit"})])],2),A._v(" "),t("span",{attrs:{title:"delete"},on:{click:function(e){e.stopPropagation(),e.preventDefault(),A.delNode(e)}}},[A._t("edit",[t("i",{staticClass:"vue-tree-icon icon-trash"})])],2)])]),A._v(" "),A.model.children&&A.model.children.length>0&&A.expanded?t("div",{staticClass:"border bottom",class:{active:A.isDragEnterBottom},on:{drop:A.dropBottom,dragenter:A.dragEnterBottom,dragover:A.dragOverBottom,dragleave:A.dragLeaveBottom}}):A._e()]):A._e(),A._v(" "),A.isFolder?t("div",{directives:[{name:"show",rawName:"v-show",value:A.expanded,expression:"expanded"}],class:{"tree-margin":"root"!==A.model.name}},A._l(A.model.children,function(e){return t("item",{key:e.id,attrs:{"default-tree-node-name":A.defaultTreeNodeName,"default-leaf-node-name":A.defaultLeafNodeName,model:e}})})):A._e()])},staticRenderFns:[]}}])}); \ No newline at end of file +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else if(typeof exports === 'object') + exports["VueTreeList"] = factory(); + else + root["VueTreeList"] = factory(); +})(this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; + +/******/ // The require function +/******/ function __webpack_require__(moduleId) { + +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; + +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ exports: {}, +/******/ id: moduleId, +/******/ loaded: false +/******/ }; + +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); + +/******/ // Flag the module as loaded +/******/ module.loaded = true; + +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } + + +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; + +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; + +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; + +/******/ // Load entry module and return exports +/******/ return __webpack_require__(0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.VueTreeList = __webpack_require__(1); + exports.TreeNode = __webpack_require__(13).TreeNode; + exports.Tree = __webpack_require__(13).Tree; + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __webpack_require__) { + + + /* styles */ + __webpack_require__(2) + + var Component = __webpack_require__(11)( + /* script */ + __webpack_require__(12), + /* template */ + __webpack_require__(15), + /* scopeId */ + "data-v-f6d9fc8a", + /* cssModules */ + null + ) + Component.options.__file = "/Users/ayou/Workspace/vue-tree/src/VueTreeList.vue" + if (Component.esModule && Object.keys(Component.esModule).some(function (key) {return key !== "default" && key !== "__esModule"})) {console.error("named exports are not supported in *.vue files.")} + if (Component.options.functional) {console.error("[vue-loader] VueTreeList.vue: functional components are not supported with templates, they should use render functions.")} + + /* hot reload */ + if (false) {(function () { + var hotAPI = require("vue-hot-reload-api") + hotAPI.install(require("vue"), false) + if (!hotAPI.compatible) return + module.hot.accept() + if (!module.hot.data) { + hotAPI.createRecord("data-v-f6d9fc8a", Component.options) + } else { + hotAPI.reload("data-v-f6d9fc8a", Component.options) + } + })()} + + module.exports = Component.exports + + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __webpack_require__) { + + // style-loader: Adds some css to the DOM by adding a