Преглед изворни кода

整理一些常用的js库

cuiyalong пре 5 година
родитељ
комит
e3345bb2e7
40 измењених фајлова са 646 додато и 2 уклоњено
  1. 29 0
      .gitignore
  2. 35 2
      README.md
  3. 0 0
      lib/art-template/4.13.2/template-web.min.js
  4. 1 0
      lib/axios/0.19.2/axios.min.js
  5. 5 0
      lib/bootstrap/4.5.0/bootstrap.min.css
  6. 5 0
      lib/bootstrap/4.5.0/bootstrap.min.js
  7. 1 0
      lib/dplayer/1.25.1/DPlayer.min.js
  8. 24 0
      lib/echarts/4.7.0/echarts.min.js
  9. 24 0
      lib/echarts/4.8.0/echarts.min.js
  10. 1 0
      lib/fastclick/1.0.6/fastclick.min.js
  11. 3 0
      lib/html5shiv/3.7.3/html5shiv.min.js
  12. 1 0
      lib/jquery/1.12.4/jquery.min.js
  13. 1 0
      lib/jquery/2.2.4/jquery.min.js
  14. 1 0
      lib/jquery/3.5.1/jquery.min.js
  15. 2 0
      lib/js-cookie/2.2.1/js.cookie.min.js
  16. 4 0
      lib/jweixin/1.6.0/jweixin-1.6.0.js
  17. 1 0
      lib/moment/2.24.0/moment.min.js
  18. 2 0
      lib/nprogress/0.2.0/nprogress.min.css
  19. 1 0
      lib/nprogress/0.2.0/nprogress.min.js
  20. 1 0
      lib/single-spa/5.5.3/single-spa.min.js
  21. 12 0
      lib/swiper/5.4.2/swiper.min.css
  22. 12 0
      lib/swiper/5.4.2/swiper.min.js
  23. 1 0
      lib/vant/2.5.7/vant.min.js
  24. 1 0
      lib/vant/2.8.2/vant.min.js
  25. 9 0
      lib/vconsole/3.3.4/vconsole.min.js
  26. 5 0
      lib/vue-lazyload/1.3.3/vue-lazyload.js
  27. 5 0
      lib/vue-router/3.1.3/vue-router.min.js
  28. 5 0
      lib/vue-router/3.1.5/vue-router.min.js
  29. 5 0
      lib/vue/2.6.11/vue.min.js
  30. 5 0
      lib/vuex/3.1.2/vuex.min.js
  31. 5 0
      lib/vuex/3.4.0/vuex.min.js
  32. 5 0
      lib/weui.js/1.2.1/weui.min.js
  33. 4 0
      lib/weui/1.1.3/weui.min.css
  34. 4 0
      lib/weui/2.3.0/weui.min.css
  35. 1 0
      lib/zepto/1.2.0/zepto.min.js
  36. 300 0
      libs.json
  37. 70 0
      main.js
  38. 14 0
      package.json
  39. 41 0
      src/example.js
  40. 0 0
      src/tools.js

+ 29 - 0
.gitignore

@@ -0,0 +1,29 @@
+.DS_Store
+node_modules
+/datareport
+dist
+rev
+
+# local env files
+.env.local
+.env.*.local
+
+# Log files
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# Editor directories and files
+.idea
+# .vscode
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
+
+# 压缩文件
+*.rar
+*.zip
+*.7z
+.vscode

+ 35 - 2
README.md

@@ -1,3 +1,36 @@
-# cdn-assets
+# cdn assets 
 
-一些使用cdn加速的静态资源
+> 一些使用cdn加速的静态资源
+
+## 访问
+
+地址:`https://ali-cdn.jianyu360.com/cdn/${lib}/${version}/${lib}.min.js`
+
+​			``https://ali-cdn.jianyu360.com/cdn/库名/库版本号/库名.min.js``
+
+## 新增/获取
+
+### `/cdn`文件夹规范
+1. `目录名`、`文件名`必须**全部**使用**小写**,必要时用`-`分割
+2. 按照 `/库名/库版本号/库名.min.js`的形式存放`库`资源。
+3. 如需存放其他`非js库资源`,请存放到与cdn同级的`asssets`目录下
+
+### 网络资源
+1. cdn地址获取访问(国外): `https://www.jsdelivr.com`
+2. cdn地址获取访问(国内): `https://www.bootcdn.cn`
+
+
+
+## 目录结构
+
+```
+cdn-assets
+┬
+├── assets/			其他静态资源
+├── lib/			js库
+│  ├── axios/       axios
+│  ├── vue/         vue
+│  ......
+│  └── jquery/      jquery
+└── lib.json        js库列表(lib目录中都有哪些资源)
+```

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
lib/art-template/4.13.2/template-web.min.js


Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
lib/axios/0.19.2/axios.min.js


Разлика између датотеке није приказан због своје велике величине
+ 5 - 0
lib/bootstrap/4.5.0/bootstrap.min.css


Разлика између датотеке није приказан због своје велике величине
+ 5 - 0
lib/bootstrap/4.5.0/bootstrap.min.js


Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
lib/dplayer/1.25.1/DPlayer.min.js


Разлика између датотеке није приказан због своје велике величине
+ 24 - 0
lib/echarts/4.7.0/echarts.min.js


Разлика између датотеке није приказан због своје велике величине
+ 24 - 0
lib/echarts/4.8.0/echarts.min.js


Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
lib/fastclick/1.0.6/fastclick.min.js


Разлика између датотеке није приказан због своје велике величине
+ 3 - 0
lib/html5shiv/3.7.3/html5shiv.min.js


Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
lib/jquery/1.12.4/jquery.min.js


Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
lib/jquery/2.2.4/jquery.min.js


Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
lib/jquery/3.5.1/jquery.min.js


+ 2 - 0
lib/js-cookie/2.2.1/js.cookie.min.js

@@ -0,0 +1,2 @@
+/* js.cookie.js v2.2.1 */
+!function(e){var n;if("function"==typeof define&&define.amd&&(define(e),n=!0),"object"==typeof exports&&(module.exports=e(),n=!0),!n){var t=window.Cookies,o=window.Cookies=e();o.noConflict=function(){return window.Cookies=t,o}}}(function(){function f(){for(var e=0,n={};e<arguments.length;e++){var t=arguments[e];for(var o in t)n[o]=t[o]}return n}function a(e){return e.replace(/(%[0-9A-Z]{2})+/g,decodeURIComponent)}return function e(u){function c(){}function t(e,n,t){if("undefined"!=typeof document){"number"==typeof(t=f({path:"/"},c.defaults,t)).expires&&(t.expires=new Date(1*new Date+864e5*t.expires)),t.expires=t.expires?t.expires.toUTCString():"";try{var o=JSON.stringify(n);/^[\{\[]/.test(o)&&(n=o)}catch(e){}n=u.write?u.write(n,e):encodeURIComponent(String(n)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),e=encodeURIComponent(String(e)).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/[\(\)]/g,escape);var r="";for(var i in t)t[i]&&(r+="; "+i,!0!==t[i]&&(r+="="+t[i].split(";")[0]));return document.cookie=e+"="+n+r}}function n(e,n){if("undefined"!=typeof document){for(var t={},o=document.cookie?document.cookie.split("; "):[],r=0;r<o.length;r++){var i=o[r].split("="),c=i.slice(1).join("=");n||'"'!==c.charAt(0)||(c=c.slice(1,-1));try{var f=a(i[0]);if(c=(u.read||u)(c,f)||a(c),n)try{c=JSON.parse(c)}catch(e){}if(t[f]=c,e===f)break}catch(e){}}return e?t[e]:t}}return c.set=t,c.get=function(e){return n(e,!1)},c.getJSON=function(e){return n(e,!0)},c.remove=function(e,n){t(e,"",f(n,{expires:-1}))},c.defaults={},c.withConverter=e,c}(function(){})});

Разлика између датотеке није приказан због своје велике величине
+ 4 - 0
lib/jweixin/1.6.0/jweixin-1.6.0.js


Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
lib/moment/2.24.0/moment.min.js


+ 2 - 0
lib/nprogress/0.2.0/nprogress.min.css

@@ -0,0 +1,2 @@
+/* nprogress v0.2.0 */
+#nprogress{pointer-events:none}#nprogress .bar{background:#29d;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #29d,0 0 5px #29d;opacity:1;-webkit-transform:rotate(3deg) translate(0,-4px);-ms-transform:rotate(3deg) translate(0,-4px);transform:rotate(3deg) translate(0,-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:2px solid transparent;border-top-color:#29d;border-left-color:#29d;border-radius:50%;-webkit-animation:nprogress-spinner 400ms linear infinite;animation:nprogress-spinner 400ms linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}

Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
lib/nprogress/0.2.0/nprogress.min.js


Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
lib/single-spa/5.5.3/single-spa.min.js


Разлика између датотеке није приказан због своје велике величине
+ 12 - 0
lib/swiper/5.4.2/swiper.min.css


Разлика између датотеке није приказан због своје велике величине
+ 12 - 0
lib/swiper/5.4.2/swiper.min.js


Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
lib/vant/2.5.7/vant.min.js


Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
lib/vant/2.8.2/vant.min.js


Разлика између датотеке није приказан због своје велике величине
+ 9 - 0
lib/vconsole/3.3.4/vconsole.min.js


Разлика између датотеке није приказан због своје велике величине
+ 5 - 0
lib/vue-lazyload/1.3.3/vue-lazyload.js


Разлика између датотеке није приказан због своје велике величине
+ 5 - 0
lib/vue-router/3.1.3/vue-router.min.js


Разлика између датотеке није приказан због своје велике величине
+ 5 - 0
lib/vue-router/3.1.5/vue-router.min.js


Разлика између датотеке није приказан због своје велике величине
+ 5 - 0
lib/vue/2.6.11/vue.min.js


Разлика између датотеке није приказан због своје велике величине
+ 5 - 0
lib/vuex/3.1.2/vuex.min.js


Разлика између датотеке није приказан због своје велике величине
+ 5 - 0
lib/vuex/3.4.0/vuex.min.js


Разлика између датотеке није приказан због своје велике величине
+ 5 - 0
lib/weui.js/1.2.1/weui.min.js


Разлика између датотеке није приказан због своје велике величине
+ 4 - 0
lib/weui/1.1.3/weui.min.css


Разлика између датотеке није приказан због своје велике величине
+ 4 - 0
lib/weui/2.3.0/weui.min.css


Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
lib/zepto/1.2.0/zepto.min.js


+ 300 - 0
libs.json

@@ -0,0 +1,300 @@
+[
+  {
+    "lib": "art-template",
+    "versions": [
+      {
+        "version": "4.13.2",
+        "sourcePath": [
+          "/lib/art-template/4.13.2/template-web.min.js"
+        ]
+      }
+    ]
+  },
+  {
+    "lib": "axios",
+    "versions": [
+      {
+        "version": "0.19.2",
+        "sourcePath": [
+          "/lib/axios/0.19.2/axios.min.js"
+        ]
+      }
+    ]
+  },
+  {
+    "lib": "bootstrap",
+    "versions": [
+      {
+        "version": "4.5.0",
+        "sourcePath": [
+          "/lib/bootstrap/4.5.0/bootstrap.min.css",
+          "/lib/bootstrap/4.5.0/bootstrap.min.js"
+        ]
+      }
+    ]
+  },
+  {
+    "lib": "dplayer",
+    "versions": [
+      {
+        "version": "1.25.1",
+        "sourcePath": [
+          "/lib/dplayer/1.25.1/DPlayer.min.js"
+        ]
+      }
+    ]
+  },
+  {
+    "lib": "echarts",
+    "versions": [
+      {
+        "version": "4.7.0",
+        "sourcePath": [
+          "/lib/echarts/4.7.0/echarts.min.js"
+        ]
+      },
+      {
+        "version": "4.8.0",
+        "sourcePath": [
+          "/lib/echarts/4.8.0/echarts.min.js"
+        ]
+      }
+    ]
+  },
+  {
+    "lib": "fastclick",
+    "versions": [
+      {
+        "version": "1.0.6",
+        "sourcePath": [
+          "/lib/fastclick/1.0.6/fastclick.min.js"
+        ]
+      }
+    ]
+  },
+  {
+    "lib": "html5shiv",
+    "versions": [
+      {
+        "version": "3.7.3",
+        "sourcePath": [
+          "/lib/html5shiv/3.7.3/html5shiv.min.js"
+        ]
+      }
+    ]
+  },
+  {
+    "lib": "jquery",
+    "versions": [
+      {
+        "version": "1.12.4",
+        "sourcePath": [
+          "/lib/jquery/1.12.4/jquery.min.js"
+        ]
+      },
+      {
+        "version": "2.2.4",
+        "sourcePath": [
+          "/lib/jquery/2.2.4/jquery.min.js"
+        ]
+      },
+      {
+        "version": "3.5.1",
+        "sourcePath": [
+          "/lib/jquery/3.5.1/jquery.min.js"
+        ]
+      }
+    ]
+  },
+  {
+    "lib": "js-cookie",
+    "versions": [
+      {
+        "version": "2.2.1",
+        "sourcePath": [
+          "/lib/js-cookie/2.2.1/js.cookie.min.js"
+        ]
+      }
+    ]
+  },
+  {
+    "lib": "jweixin",
+    "versions": [
+      {
+        "version": "1.6.0",
+        "sourcePath": [
+          "/lib/jweixin/1.6.0/jweixin-1.6.0.js"
+        ]
+      }
+    ]
+  },
+  {
+    "lib": "moment",
+    "versions": [
+      {
+        "version": "2.24.0",
+        "sourcePath": [
+          "/lib/moment/2.24.0/moment.min.js"
+        ]
+      }
+    ]
+  },
+  {
+    "lib": "nprogress",
+    "versions": [
+      {
+        "version": "0.2.0",
+        "sourcePath": [
+          "/lib/nprogress/0.2.0/nprogress.min.css",
+          "/lib/nprogress/0.2.0/nprogress.min.js"
+        ]
+      }
+    ]
+  },
+  {
+    "lib": "single-spa",
+    "versions": [
+      {
+        "version": "5.5.3",
+        "sourcePath": [
+          "/lib/single-spa/5.5.3/single-spa.min.js"
+        ]
+      }
+    ]
+  },
+  {
+    "lib": "swiper",
+    "versions": [
+      {
+        "version": "5.4.2",
+        "sourcePath": [
+          "/lib/swiper/5.4.2/swiper.min.css",
+          "/lib/swiper/5.4.2/swiper.min.js"
+        ]
+      }
+    ]
+  },
+  {
+    "lib": "vant",
+    "versions": [
+      {
+        "version": "2.5.7",
+        "sourcePath": [
+          "/lib/vant/2.5.7/vant.min.js"
+        ]
+      },
+      {
+        "version": "2.8.2",
+        "sourcePath": [
+          "/lib/vant/2.8.2/vant.min.js"
+        ]
+      }
+    ]
+  },
+  {
+    "lib": "vconsole",
+    "versions": [
+      {
+        "version": "3.3.4",
+        "sourcePath": [
+          "/lib/vconsole/3.3.4/vconsole.min.js"
+        ]
+      }
+    ]
+  },
+  {
+    "lib": "vue",
+    "versions": [
+      {
+        "version": "2.6.11",
+        "sourcePath": [
+          "/lib/vue/2.6.11/vue.min.js"
+        ]
+      }
+    ]
+  },
+  {
+    "lib": "vue-lazyload",
+    "versions": [
+      {
+        "version": "1.3.3",
+        "sourcePath": [
+          "/lib/vue-lazyload/1.3.3/vue-lazyload.js"
+        ]
+      }
+    ]
+  },
+  {
+    "lib": "vue-router",
+    "versions": [
+      {
+        "version": "3.1.3",
+        "sourcePath": [
+          "/lib/vue-router/3.1.3/vue-router.min.js"
+        ]
+      },
+      {
+        "version": "3.1.5",
+        "sourcePath": [
+          "/lib/vue-router/3.1.5/vue-router.min.js"
+        ]
+      }
+    ]
+  },
+  {
+    "lib": "vuex",
+    "versions": [
+      {
+        "version": "3.1.2",
+        "sourcePath": [
+          "/lib/vuex/3.1.2/vuex.min.js"
+        ]
+      },
+      {
+        "version": "3.4.0",
+        "sourcePath": [
+          "/lib/vuex/3.4.0/vuex.min.js"
+        ]
+      }
+    ]
+  },
+  {
+    "lib": "weui",
+    "versions": [
+      {
+        "version": "1.1.3",
+        "sourcePath": [
+          "/lib/weui/1.1.3/weui.min.css"
+        ]
+      },
+      {
+        "version": "2.3.0",
+        "sourcePath": [
+          "/lib/weui/2.3.0/weui.min.css"
+        ]
+      }
+    ]
+  },
+  {
+    "lib": "weui.js",
+    "versions": [
+      {
+        "version": "1.2.1",
+        "sourcePath": [
+          "/lib/weui.js/1.2.1/weui.min.js"
+        ]
+      }
+    ]
+  },
+  {
+    "lib": "zepto",
+    "versions": [
+      {
+        "version": "1.2.0",
+        "sourcePath": [
+          "/lib/zepto/1.2.0/zepto.min.js"
+        ]
+      }
+    ]
+  }
+]

+ 70 - 0
main.js

@@ -0,0 +1,70 @@
+const fs = require('fs');
+const path = require('path');
+const root = process.cwd();
+const readdirSync = p => fs.readdirSync(p);
+const existsSync = p => fs.existsSync(p);
+const isFile = p => fs.statSync(p).isFile();
+const isDirectory = p => fs.statSync(p).isDirectory();
+const getBaseName = p => path.basename(p);
+const getExtName = p => path.extname(p);
+const getFileName = p => getBaseName(p);
+const getDirName = p => path.dirname(p);
+const join = (...ps) => path.join(root, ...ps);
+const writeJsonToFile = p => json =>
+  fs.writeFileSync(p, JSON.stringify(json, null, 2));
+
+const config = {
+  // origin: 'https://cdn-ali.jianyu360.com',
+  origin: '',
+  root: '/'
+}
+
+const search = p => {
+  if (existsSync(p)) {
+    if (isFile(p)) {
+      return {
+        name: getFileName(p),
+        path: getDirName(p)
+      };
+    } else if (isDirectory(p)) {
+      const paths = readdirSync(p);
+      return paths.map(_p => {
+        const tmp = path.join(p, _p);
+        if (isFile(tmp)) {
+          return search(tmp);
+        } else {
+          return {
+            name: getFileName(_p),
+            list: search(tmp)
+          };
+        }
+      });
+    }
+  }
+};
+
+const getSourceMap = m => {
+  return m.map((lib, i) => {
+    const versions = lib.list.map((version, j) => {
+      const isArr = Array.isArray(version.list)
+      let sourcePath = []
+      if (isArr) {
+        sourcePath = version.list.map((file, k) => {
+          return `${config.origin}${config.root}${file.path.replace(/\\/g, '\/')}/${file.name}`
+        })
+      } else {
+        sourcePath.push(`${config.origin}${config.root}${version.path.replace(/\\/g, '\/')}/${version.name}`)
+      }
+      return {
+        version: version.name,
+        sourcePath
+      }
+    })
+    return {
+      lib: lib.name,
+      versions
+    }
+  })
+}
+
+writeJsonToFile('./libs.json')(getSourceMap(search('./lib')));

+ 14 - 0
package.json

@@ -0,0 +1,14 @@
+{
+  "name": "cdn-assets",
+  "version": "1.0.0",
+  "description": "一些使用cdn加速的静态资源",
+  "private": true,
+  "main": "main.js",
+  "scripts": {
+    "task": "node main.js",
+    "test": "echo \"Error: no test specified\" && exit 1"
+  },
+  "dependencies": {},
+  "devDependencies": {},
+  "license": "ISC"
+}

+ 41 - 0
src/example.js

@@ -0,0 +1,41 @@
+const fs = require('fs');
+const path = require('path');
+const root = process.cwd();
+const readdirSync = p => fs.readdirSync(p);
+const existsSync = p => fs.existsSync(p);
+const isFile = p => fs.statSync(p).isFile();
+const isDirectory = p => fs.statSync(p).isDirectory();
+const getBaseName = p => path.basename(p);
+const getExtName = p => path.extname(p);
+const getFileName = p => getBaseName(p).split('.')[0];
+const getDirName = p => path.dirname(p);
+const join = (...ps) => path.join(root, ...ps);
+const writeJsonToFile = p => json =>
+  fs.writeFileSync(p, JSON.stringify(json, null, 2));
+  // fs.writeFileSync(p, JSON.stringify(json, null, '\t'));
+
+const search = p => {
+  if (existsSync(p)) {
+    if (isFile(p)) {
+      return {
+        name: getFileName(p),
+        ext: getExtName(p),
+        path: getDirName(p),
+      };
+    } else if (isDirectory(p)) {
+      const paths = readdirSync(p);
+      return paths.map(_p => {
+        const tmp = path.join(p, _p);
+        if (isFile(tmp)) {
+          return search(tmp);
+        } else {
+          return {
+            name: getFileName(_p),
+            list: search(tmp),
+          };
+        }
+      });
+    }
+  }
+};
+writeJsonToFile(join('./lib.json'))(search(join('./lib')));


Неке датотеке нису приказане због велике количине промена