Просмотр исходного кода

bug:修复install 部分包无法下载问题

Cheng Jian 2 лет назад
Родитель
Сommit
76ed12b841

+ 0 - 163
mock/controller/router.js

@@ -1,163 +0,0 @@
-/**
- * @description router全局配置,如有必要可分文件抽离,其中asyncRoutes只有在intelligence模式下才会用到,pro版只支持remixIcon图标,具体配置请查看vip群文档
- */
-const List = [
-  {
-    path: '/',
-    name: 'Root',
-    component: 'Layout',
-    meta: {
-      title: '首页',
-      icon: 'home-2-line',
-      breadcrumbHidden: true,
-    },
-    children: [
-      {
-        path: 'index',
-        name: 'Index',
-        component: '@/views/index',
-        meta: {
-          title: '首页',
-          icon: 'home-2-line',
-          noClosable: true,
-        },
-      },
-    ],
-  },
-  {
-    path: '/test',
-    name: 'Test',
-    component: 'Layout',
-    meta: {
-      title: '测试',
-      icon: 'user-settings-line',
-    },
-    children: [
-      {
-        path: 'testIndex',
-        name: 'TestIndex',
-        // component: '@/views/setting/personalCenter',
-        component: '@/views/test/index',
-        meta: {
-          title: '测试',
-          icon: 'map-pin-user-line',
-        },
-      },
-    ],
-  },
-  {
-    path: '/setting',
-    name: 'PersonnelManagement',
-    component: 'Layout',
-    meta: {
-      title: '配置',
-      icon: 'user-settings-line',
-    },
-    children: [
-      {
-        path: 'personalCenter',
-        name: 'PersonalCenter',
-        // component: '@/views/setting/personalCenter',
-        component: '@/views/system/personal',
-        meta: {
-          title: '个人中心',
-          icon: 'map-pin-user-line',
-        },
-      },
-      {
-        path: 'userManagement',
-        name: 'UserManagement',
-        // component: '@/views/setting/userManagement',
-        component: '@/views/system/user/index',
-        meta: {
-          title: '用户管理',
-          icon: 'user-3-line',
-        },
-      },
-      {
-        path: 'roleManagement',
-        name: 'RoleManagement',
-        // component: '@/views/setting/roleManagement',
-        component: '@/views/system/role/index',
-        meta: {
-          title: '角色管理',
-          icon: 'admin-line',
-        },
-      },
-      {
-        path: 'departmentManagement',
-        name: 'DepartmentManagement',
-        // component: '@/views/setting/departmentManagement',
-        component: '@/views/system/dept/index',
-        meta: {
-          title: '部门管理',
-          icon: 'group-line',
-        },
-      },
-      {
-        path: 'menuManagement',
-        name: 'MenuManagement',
-        // component: '@/views/setting/menuManagement',
-        component: '@/views/system/menu/index',
-        meta: {
-          title: '菜单管理',
-          icon: 'menu-2-fill',
-        },
-      },
-      {
-        path: 'systemLog',
-        name: 'SystemLog',
-        // component: '@/views/setting/systemLog',
-        component: '@/views/system/log',
-        meta: {
-          title: '系统日志',
-          icon: 'file-shield-2-line',
-        },
-      },
-    ],
-  },
-]
-
-module.exports = [
-  {
-    url: '/router/getList',
-    type: 'get',
-    response() {
-      return {
-        code: 200,
-        msg: 'success',
-        data: { list: List },
-      }
-    },
-  },
-  {
-    url: '/menuManagement/getList',
-    type: 'get',
-    response() {
-      return {
-        code: 200,
-        msg: 'success',
-        data: {
-          list: [
-            {
-              id: 'root',
-              label: '全部角色',
-              children: [
-                {
-                  id: '610000201008234560',
-                  permission: 'admin',
-                  label: 'admin角色',
-                },
-                {
-                  id: '450000200912071734',
-                  permission: 'editor',
-                  label: 'editor角色',
-                },
-              ],
-            },
-          ],
-        },
-      }
-    },
-  },
-]

+ 0 - 40
mock/controller/system.js

@@ -1,40 +0,0 @@
-const roleList = [
-  {
-    id: 1,
-    role: 'admin',
-    btnRolesCheckedList: ['read:system', 'write:system', 'delete:system'],
-  },
-]
-const deptList = [
-  {
-    id: 1,
-    name: '研发部',
-    parentId: 0,
-    order: '1',
-    createTime: new Date().toLocaleString(),
-  },
-]
-module.exports = [
-  {
-    url: '/roleManagement/getList',
-    type: 'get',
-    response() {
-      return {
-        code: 200,
-        msg: 'success',
-        data: { list: roleList, total: 1 },
-      }
-    },
-  },
-  {
-    url: '/departmentManagement/getList',
-    type: 'get',
-    response() {
-      return {
-        code: 200,
-        msg: 'success',
-        data: { list: deptList, total: 1 },
-      }
-    },
-  },
-]

+ 0 - 18
mock/controller/test.js

@@ -1,18 +0,0 @@
-const List = [
-  {
-    id: 1,
-  },
-]
-module.exports = [
-  {
-    url: '/test/getList',
-    type: 'get',
-    response() {
-      return {
-        code: 200,
-        msg: 'success',
-        data: { list: List, total: 123 },
-      }
-    },
-  },
-]

+ 0 - 99
mock/controller/user.js

@@ -1,99 +0,0 @@
-const { Random } = require('mockjs')
-const tokens = {
-  admin: `admin-token-${Random.guid()}-${new Date().getTime()}`,
-  editor: `editor-token-${Random.guid()}-${new Date().getTime()}`,
-  test: `test-token-${Random.guid()}-${new Date().getTime()}`,
-}
-const username2role = {
-  admin: ['Admin'],
-  editor: ['Editor'],
-  test: ['Admin', 'Editor'],
-}
-const role2permission = {
-  Admin: ['read:system', 'write:system', 'delete:system'],
-  Editor: ['read:system', 'write:system'],
-  Test: ['read:system'],
-}
-
-module.exports = [
-  {
-    url: '/login',
-    type: 'post',
-    response(config) {
-      const { username } = config.body
-      const token = tokens[username]
-      if (!token)
-        return {
-          code: 500,
-          msg: '帐户或密码不正确',
-        }
-      return {
-        code: 200,
-        msg: 'success',
-        data: { token },
-      }
-    },
-  },
-  {
-    url: '/userInfo',
-    type: 'get',
-    response(config) {
-      const authorization =
-        config.headers.authorization || config.headers.Authorization
-      if (!authorization.startsWith('Bearer '))
-        return {
-          code: 401,
-          msg: '令牌无效',
-        }
-
-      const username = authorization.replace('Bearer ', '').split('-token-')[0]
-      const roles = username2role[username] || []
-      const permissions = [
-        ...new Set(roles.flatMap((role) => role2permission[role])),
-      ]
-
-      return {
-        code: 200,
-        msg: 'success',
-        data: {
-          username,
-          roles,
-          permissions,
-          avatar: 'https://i.gtimg.cn/club/item/face/img/2/16022_100.gif',
-        },
-      }
-    },
-  },
-  {
-    url: '/logout',
-    type: 'get',
-    response() {
-      return {
-        code: 200,
-        msg: 'success',
-      }
-    },
-  },
-  {
-    url: '/userManagement/getList',
-    type: 'get',
-    response() {
-      return {
-        code: 200,
-        msg: 'success',
-        data: {
-          list: [
-            {
-              id: 1,
-              username: '管理员',
-              email: '123@123.com',
-              roles: ['admin'],
-              datatime: new Date().toLocaleString(),
-            },
-          ],
-          total: 1,
-        },
-      }
-    },
-  },
-]

+ 0 - 99
mock/index.js

@@ -1,99 +0,0 @@
-const chokidarNext = require('chokidar-next')
-const bodyParser = require('body-parser')
-const chalkNext = require('chalk-next')
-const path = require('path')
-const { mock } = require('mockjs')
-const { baseURL } = require('../src/config')
-const mockDir = path.join(process.cwd(), 'mock')
-const { handleMockArray } = require('./utils')
-
-/**
- *
- * @param url
- * @param type
- * @param respond
- * @returns {{response(*=, *=): void, type: (*|string), url: RegExp}}
- */
-const responseFake = (url, type, respond) => {
-  return {
-    url: new RegExp(`${baseURL}${url}`),
-    type: type || 'get',
-    response(req, res) {
-      res.status(200)
-      console.log(chalkNext.green(`\n> 请求地址:${req.path}`))
-      if (JSON.stringify(req.body) !== '{}')
-        console.log(
-          chalkNext.green(`> 请求参数(body):${JSON.stringify(req.body)}`)
-        )
-      if (JSON.stringify(req.query) !== '{}')
-        console.log(
-          chalkNext.green(`> 请求参数(query):${JSON.stringify(req.query)}`)
-        )
-      res.json(mock(respond instanceof Function ? respond(req, res) : respond))
-    },
-  }
-}
-
-/**
- *
- * @param app
- * @returns {{mockStartIndex: number, mockRoutesLength: number}}
- */
-const registerRoutes = (app) => {
-  let mockLastIndex
-  const mocks = []
-  const mockArray = handleMockArray()
-  mockArray.forEach((item) => {
-    const obj = require(item)
-    mocks.push(...obj)
-  })
-  const mocksForServer = mocks.map((route) =>
-    responseFake(route.url, route.type, route.response)
-  )
-  const mockRoutesLength = Object.keys(mocksForServer).length
-  for (const item of mocksForServer) {
-    app[item.type](item.url, item.response)
-    mockLastIndex = app._router.stack.length
-  }
-  return {
-    mockRoutesLength,
-    mockStartIndex: mockLastIndex - mockRoutesLength,
-  }
-}
-
-/**
- *
- * @param app
- */
-module.exports = (app) => {
-  app.use(bodyParser.json())
-  app.use(
-    bodyParser.urlencoded({
-      extended: true,
-    })
-  )
-  const mockRoutes = registerRoutes(app)
-  let mockRoutesLength = mockRoutes.mockRoutesLength
-  let mockStartIndex = mockRoutes.mockStartIndex
-  chokidarNext
-    .watch(mockDir, {
-      ignored: /vab-mock-server/,
-      ignoreInitial: true,
-    })
-    .on('all', (event) => {
-      if (event === 'change' || event === 'add') {
-        try {
-          app._router.stack.splice(mockStartIndex, mockRoutesLength)
-          Object.keys(require.cache).forEach((item) => {
-            if (item.includes(mockDir))
-              delete require.cache[require.resolve(item)]
-          })
-          const mockRoutes = registerRoutes(app)
-          mockRoutesLength = mockRoutes.mockRoutesLength
-          mockStartIndex = mockRoutes.mockStartIndex
-        } catch (error) {
-          console.log(chalkNext.red(error))
-        }
-      }
-    })
-}

+ 0 - 37
mock/utils/index.js

@@ -1,37 +0,0 @@
-const fs = require('fs')
-const { Random } = require('mockjs')
-
-/**
- * @description 随机生成图片url。
- * @returns {string}
- */
-function handleRandomImage(/* width = 50, height = 50 */) {
-  //return `https://picsum.photos/${width}/${height}?random=${Random.guid()}`
-  return `https://gitee.com/chu1204505056/image/raw/master/table/vab-image-${Random.integer(
-    1,
-    38
-  )}.jpg`
-}
-
-/**
- * @description 处理所有 controller 模块,npm run serve时在node环境中自动输出controller文件夹下Mock接口,请勿修改。
- * @returns {[]}
- */
-function handleMockArray() {
-  const getFiles = (path, baseUrl = './controller') => {
-    const files = fs.readdirSync(path)
-    return files.flatMap((file) => {
-      const fPath = `${path}/${file}`
-      const stat = fs.statSync(fPath)
-      return stat.isDirectory()
-        ? getFiles(fPath, `${baseUrl}/${file}`)
-        : `${baseUrl}/${file}`
-    })
-  }
-  return getFiles('mock/controller')
-}
-
-module.exports = {
-  handleRandomImage,
-  handleMockArray,
-}

+ 1 - 4
package.json

@@ -32,7 +32,7 @@
     "qs": "^6.10.2",
     "resize-detector": "^0.3.0",
     "screenfull": "5.2.0",
-    "vab-icons": "^0.0.23",
+    "vab-icons": "file:vab-icons",
     "vue": "^2.6.14",
     "vue-grid-layout": "^2.4.0",
     "vue-i18n": "^8.26.7",
@@ -49,8 +49,6 @@
     "@vue/cli-service": "^4.5.15",
     "@vue/eslint-config-prettier": "^6.0.0",
     "body-parser": "^1.19.1",
-    "chalk-next": "^6.1.5",
-    "chokidar-next": "^4.0.10",
     "compression-webpack-plugin": "6.1.1",
     "eslint": "7.32.0",
     "eslint-plugin-prettier": "^4.0.0",
@@ -71,7 +69,6 @@
     "stylelint-config-prettier": "^9.0.3",
     "stylelint-config-recess-order": "^3.0.0",
     "svg-sprite-loader": "^6.0.11",
-    "vab-templates": "^0.0.5",
     "vue-eslint-parser": "^8.0.1",
     "vue-template-compiler": "^2.6.14",
     "webpackbar": "^5.0.2"

BIN
vab-icons/lib/fonts/remixicon.31d28485.eot


BIN
vab-icons/lib/fonts/remixicon.881fbc46.woff


BIN
vab-icons/lib/fonts/remixicon.888e61f0.ttf


BIN
vab-icons/lib/fonts/remixicon.9915fef9.woff2


Разница между файлами не показана из-за своего большого размера
+ 153 - 0
vab-icons/lib/img/remixicon.95138f36.svg


Разница между файлами не показана из-за своего большого размера
+ 8115 - 0
vab-icons/lib/img/remixicon.symbol.f09b1c74.svg


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
vab-icons/lib/vab-icons.css


+ 302 - 0
vab-icons/lib/vab-icons.umd.min.js

@@ -0,0 +1,302 @@
+/* eslint-disable */
+!(function () {
+  if (
+    !process.env[
+      '\u0056\u0055\u0045\u005f\u0041\u0050\u0050\u005f\u0053\u0045\u0043\u0052\u0045\u0054\u005f\u004b\u0045\u0059'
+    ]
+  )
+    document.body.innerHTML = ''
+  else if (
+    process.env[
+      '\u0056\u0055\u0045\u005f\u0041\u0050\u0050\u005f\u0053\u0045\u0043\u0052\u0045\u0054\u005f\u004b\u0045\u0059'
+    ] == '\u0070\u0072\u0065\u0076\u0069\u0065\u0077\u000d\u000a'
+  )
+    if (
+      document.domain != 'localhost' &&
+      document.domain !=
+        '\u0063\u0068\u0075\u0031\u0032\u0030\u0034\u0035\u0030\u0035\u0030\u0035\u0036\u002e\u0067\u0069\u0074\u0065\u0065\u002e\u0069\u006f' &&
+      document.domain != '127.0.0.1' &&
+      document.domain !=
+        '\u0076\u0075\u0065\u002d\u0061\u0064\u006d\u0069\u006e\u002d\u0062\u0065\u0061\u0075\u0074\u0069\u0066\u0075\u006c\u002e\u0063\u006f\u006d' &&
+      process.env.NODE_ENV ===
+        '\u0070\u0072\u006f\u0064\u0075\u0063\u0074\u0069\u006f\u006e'
+    )
+      document.body.innerHTML = ''
+})()
+;(function (t, e) {
+  'object' === typeof exports && 'object' === typeof module
+    ? (module.exports = e())
+    : 'function' === typeof define && define.amd
+    ? define([], e)
+    : 'object' === typeof exports
+    ? (exports['vab-icons'] = e())
+    : (t['vab-icons'] = e())
+})('undefined' !== typeof self ? self : this, function () {
+  return (function (t) {
+    var e = {}
+    function n(r) {
+      if (e[r]) return e[r].exports
+      var o = (e[r] = { i: r, l: !1, exports: {} })
+      return t[r].call(o.exports, o, o.exports, n), (o.l = !0), o.exports
+    }
+    return (
+      (n.m = t),
+      (n.c = e),
+      (n.d = function (t, e, r) {
+        n.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: r })
+      }),
+      (n.r = function (t) {
+        'undefined' !== typeof Symbol &&
+          Symbol.toStringTag &&
+          Object.defineProperty(t, Symbol.toStringTag, { value: 'Module' }),
+          Object.defineProperty(t, '__esModule', { value: !0 })
+      }),
+      (n.t = function (t, e) {
+        if ((1 & e && (t = n(t)), 8 & e)) return t
+        if (4 & e && 'object' === typeof t && t && t.__esModule) return t
+        var r = Object.create(null)
+        if (
+          (n.r(r),
+          Object.defineProperty(r, 'default', { enumerable: !0, value: t }),
+          2 & e && 'string' != typeof t)
+        )
+          for (var o in t)
+            n.d(
+              r,
+              o,
+              function (e) {
+                return t[e]
+              }.bind(null, o)
+            )
+        return r
+      }),
+      (n.n = function (t) {
+        var e =
+          t && t.__esModule
+            ? function () {
+                return t['default']
+              }
+            : function () {
+                return t
+              }
+        return n.d(e, 'a', e), e
+      }),
+      (n.o = function (t, e) {
+        return Object.prototype.hasOwnProperty.call(t, e)
+      }),
+      (n.p = ''),
+      n((n.s = 'fb15'))
+    )
+  })({
+    '06af': function (t, e, n) {},
+    '1cdc': function (t, e, n) {
+      'use strict'
+      n('06af')
+    },
+    '29a1': function (t, e, n) {
+      t.exports = n.p + 'img/remixicon.symbol.f09b1c74.svg'
+    },
+    8875: function (t, e, n) {
+      var r, o, i
+      ;(function (n, c) {
+        ;(o = []),
+          (r = c),
+          (i = 'function' === typeof r ? r.apply(e, o) : r),
+          void 0 === i || (t.exports = i)
+      })('undefined' !== typeof self && self, function () {
+        function t() {
+          var e = Object.getOwnPropertyDescriptor(document, 'currentScript')
+          if (!e && 'currentScript' in document && document.currentScript)
+            return document.currentScript
+          if (e && e.get !== t && document.currentScript)
+            return document.currentScript
+          try {
+            throw new Error()
+          } catch (p) {
+            var n,
+              r,
+              o,
+              i = /.*at [^(]*\((.*):(.+):(.+)\)$/gi,
+              c = /@([^@]*):(\d+):(\d+)\s*$/gi,
+              s = i.exec(p.stack) || c.exec(p.stack),
+              u = (s && s[1]) || !1,
+              a = (s && s[2]) || !1,
+              f = document.location.href.replace(document.location.hash, ''),
+              l = document.getElementsByTagName('script')
+            u === f &&
+              ((n = document.documentElement.outerHTML),
+              (r = new RegExp(
+                '(?:[^\\n]+?\\n){0,' +
+                  (a - 2) +
+                  '}[^<]*<script>([\\d\\D]*?)<\\/script>[\\d\\D]*',
+                'i'
+              )),
+              (o = n.replace(r, '$1').trim()))
+            for (var d = 0; d < l.length; d++) {
+              if ('interactive' === l[d].readyState) return l[d]
+              if (l[d].src === u) return l[d]
+              if (u === f && l[d].innerHTML && l[d].innerHTML.trim() === o)
+                return l[d]
+            }
+            return null
+          }
+        }
+        return t
+      })
+    },
+    ab05: function (t, e, n) {},
+    fb15: function (t, e, n) {
+      'use strict'
+      if ((n.r(e), 'undefined' !== typeof window)) {
+        var r = window.document.currentScript,
+          o = n('8875')
+        ;(r = o()),
+          'currentScript' in document ||
+            Object.defineProperty(document, 'currentScript', { get: o })
+        var i = r && r.src.match(/(.+\/)[^/]+\.js(\?.*)?$/)
+        i && (n.p = i[1])
+      }
+      var c = function () {
+          var t,
+            e = this,
+            n = e.$createElement,
+            r = e._self._c || n
+          return e.isExternal
+            ? r(
+                'img',
+                e._g(
+                  { staticClass: 'img-icon', attrs: { src: e.icon } },
+                  e.$listeners
+                )
+              )
+            : e.isCustomSvg
+            ? r(
+                'svg',
+                e._g(
+                  { class: e.svgClass, attrs: { 'aria-hidden': 'true' } },
+                  e.$listeners
+                ),
+                [r('use', { attrs: { 'xlink:href': '#vab-icon-' + e.icon } })]
+              )
+            : e.isDefaultSvg
+            ? r('svg', e._g({ staticClass: 'vab-icon' }, e.$listeners), [
+                r('use', {
+                  attrs: { 'xlink:href': e.remixIconPath + '#ri-' + e.icon },
+                }),
+              ])
+            : r(
+                'i',
+                e._g(
+                  {
+                    class: ((t = {}), (t['ri-' + e.icon] = !0), t),
+                    attrs: { 'aria-hidden': 'true' },
+                  },
+                  e.$listeners
+                )
+              )
+        },
+        s = []
+      n('ab05')
+      function u(t) {
+        return /^(https?:|mailto:|tel:)/.test(t)
+      }
+      var a = {
+          name: 'VabIcon',
+          props: {
+            icon: { type: String, required: !0 },
+            isCustomSvg: { type: Boolean, default: !1 },
+            isDefaultSvg: { type: Boolean, default: !1 },
+            className: { type: String, default: '' },
+          },
+          data: function () {
+            return { remixIconPath: n('29a1') }
+          },
+          computed: {
+            isExternal: function () {
+              return u(this.icon)
+            },
+            svgClass: function () {
+              return this.className
+                ? 'vab-icon '.concat(this.className)
+                : 'vab-icon'
+            },
+          },
+        },
+        f = a
+      n('1cdc')
+      function l(t, e, n, r, o, i, c, s) {
+        var u,
+          a = 'function' === typeof t ? t.options : t
+        if (
+          (e && ((a.render = e), (a.staticRenderFns = n), (a._compiled = !0)),
+          r && (a.functional = !0),
+          i && (a._scopeId = 'data-v-' + i),
+          c
+            ? ((u = function (t) {
+                ;(t =
+                  t ||
+                  (this.$vnode && this.$vnode.ssrContext) ||
+                  (this.parent &&
+                    this.parent.$vnode &&
+                    this.parent.$vnode.ssrContext)),
+                  t ||
+                    'undefined' === typeof __VUE_SSR_CONTEXT__ ||
+                    (t = __VUE_SSR_CONTEXT__),
+                  o && o.call(this, t),
+                  t && t._registeredComponents && t._registeredComponents.add(c)
+              }),
+              (a._ssrRegister = u))
+            : o &&
+              (u = s
+                ? function () {
+                    o.call(
+                      this,
+                      (a.functional ? this.parent : this).$root.$options
+                        .shadowRoot
+                    )
+                  }
+                : o),
+          u)
+        )
+          if (a.functional) {
+            a._injectStyles = u
+            var f = a.render
+            a.render = function (t, e) {
+              return u.call(e), f(t, e)
+            }
+          } else {
+            var l = a.beforeCreate
+            a.beforeCreate = l ? [].concat(l, u) : [u]
+          }
+        return { exports: t, options: a }
+      }
+      var d = l(f, c, s, !1, null, '79aac9d9', null),
+        p = d.exports
+      e['default'] = p
+    },
+  })['default']
+})
+!(function () {
+  if (
+    !process.env[
+      '\u0056\u0055\u0045\u005f\u0041\u0050\u0050\u005f\u0053\u0045\u0043\u0052\u0045\u0054\u005f\u004b\u0045\u0059'
+    ]
+  )
+    document.body.innerHTML = ''
+  else if (
+    process.env[
+      '\u0056\u0055\u0045\u005f\u0041\u0050\u0050\u005f\u0053\u0045\u0043\u0052\u0045\u0054\u005f\u004b\u0045\u0059'
+    ] == '\u0070\u0072\u0065\u0076\u0069\u0065\u0077\u000d\u000a'
+  )
+    if (
+      document.domain != 'localhost' &&
+      document.domain !=
+        '\u0063\u0068\u0075\u0031\u0032\u0030\u0034\u0035\u0030\u0035\u0030\u0035\u0036\u002e\u0067\u0069\u0074\u0065\u0065\u002e\u0069\u006f' &&
+      document.domain != '127.0.0.1' &&
+      document.domain !=
+        '\u0076\u0075\u0065\u002d\u0061\u0064\u006d\u0069\u006e\u002d\u0062\u0065\u0061\u0075\u0074\u0069\u0066\u0075\u006c\u002e\u0063\u006f\u006d' &&
+      process.env.NODE_ENV ===
+        '\u0070\u0072\u006f\u0064\u0075\u0063\u0074\u0069\u006f\u006e'
+    )
+      document.body.innerHTML = ''
+})()

+ 5 - 0
vab-icons/package.json

@@ -0,0 +1,5 @@
+{
+  "name": "vab-icons",
+  "version": "0.0.23",
+  "main": "./lib/vab-icons.umd.min.js"
+}

Некоторые файлы не были показаны из-за большого количества измененных файлов