Browse Source

Merge branches 'next' and 'next' of https://github.com/jdf2e/nutui into next

zy19940510 5 years ago
parent
commit
129a7a873c

+ 1 - 1
.gitignore

@@ -2,7 +2,7 @@
 node_modules
 /dist
 /libs
-/jd
+/jd/upload.js
 yarn.lock
 package.lock
 

+ 15 - 0
commitlint.config.js

@@ -0,0 +1,15 @@
+module.exports = {
+  extends: ['@commitlint/config-conventional'],
+  rules: {
+    'body-leading-blank': [1, 'always'],
+    'footer-leading-blank': [1, 'always'],
+    'header-max-length': [2, 'always', 72],
+    'scope-case': [2, 'always', 'lower-case'],
+    'subject-case': [2, 'never', ['sentence-case', 'start-case', 'pascal-case', 'upper-case']],
+    'subject-empty': [2, 'never'],
+    'subject-full-stop': [2, 'never', '.'],
+    'type-case': [2, 'always', 'lower-case'],
+    'type-empty': [2, 'never'],
+    'type-enum': [2, 'always', ['upd', 'chore', 'docs', 'feat', 'fix', 'test', 'refactor', 'revert', 'style']]
+  }
+}

+ 12 - 0
jd/verifymail.js

@@ -0,0 +1,12 @@
+#!/usr/bin/env node
+const { execSync } = require('child_process')
+
+const stdout = execSync('git config user.email').toString()
+
+if (stdout && /@jd.com$/gi.test(stdout.replace(/^\s+|\s+$/g, ''))) {
+  console.log('\x1B[31m%s\x1B[39m', 'ERROR:', '不能使用京东企业邮箱提交,请设置个人GitHub邮箱')
+  console.log('提示: git config user.email xxxxxxxx@xx.com')
+  process.exit(1)
+} else {
+  process.exit(0)
+}

+ 14 - 1
package.json

@@ -44,6 +44,8 @@
     "vue-router": "^4.0.0-0"
   },
   "devDependencies": {
+    "@commitlint/cli": "^11.0.0",
+    "@commitlint/config-conventional": "^11.0.0",
     "@typescript-eslint/eslint-plugin": "^2.33.0",
     "@typescript-eslint/parser": "^2.33.0",
     "@vue/cli-plugin-babel": "~4.5.0",
@@ -57,6 +59,8 @@
     "eslint": "^6.7.2",
     "eslint-plugin-prettier": "^3.1.3",
     "eslint-plugin-vue": "^7.0.0-0",
+    "husky": "^4.3.0",
+    "lint-staged": "^10.5.0",
     "prettier": "^1.19.1",
     "typescript": "~3.9.3"
   },
@@ -81,6 +85,15 @@
       "no-console": "off"
     }
   },
+  "husky": {
+    "hooks": {
+      "pre-commit": "node ./jd/verifymail.js && lint-staged",
+      "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
+    }
+  },
+  "lint-staged": {
+    "*.{ts,js,vue,scss}": "prettier --write"
+  },
   "repository": {
     "type": "git",
     "url": "https://github.com/jdf2e/nutui.git"
@@ -90,4 +103,4 @@
     "last 2 versions",
     "not dead"
   ]
-}
+}

+ 43 - 43
src/config.ts

@@ -1,47 +1,47 @@
 export const versions = [
-    { name: "1.x", link: "/1x/" },
-    { name: "2.x", link: "/" },
-    { name: "3.x", link: "/3x/" }
+  { name: '1.x', link: '/1x/' },
+  { name: '2.x', link: '/' },
+  { name: '3.x', link: '/3x/' }
 ];
 export const nav = [
-    {
-        name: "布局组件",
-        packages: [
-            {
-                name: "Button",
-                sort: 1,
-                cName: "按钮组件",
-                type: "component",
-                show: true,
-                desc: "按钮用于触发一个操作,如提交表单。",
-                author: "richard1015"
-            }
-        ]
-    },
-    {
-        name: "操作反馈",
-        packages: []
-    },
-    {
-        name: "基础组件",
-        packages: [
-            {
-                name: "Uploader",
-                sort: 1,
-                cName: "上传组件",
-                type: "component",
-                show: true,
-                desc: "",
-                author: "richard1015"
-            }
-        ]
-    },
-    {
-        name: "导航组件",
-        packages: []
-    },
-    {
-        name: "业务组件",
-        packages: []
-    }
+  {
+    name: '布局组件',
+    packages: [
+      {
+        name: 'Button',
+        sort: 1,
+        cName: '按钮组件',
+        type: 'component',
+        show: true,
+        desc: '按钮用于触发一个操作,如提交表单。',
+        author: 'richard1015'
+      }
+    ]
+  },
+  {
+    name: '操作反馈',
+    packages: []
+  },
+  {
+    name: '基础组件',
+    packages: [
+      {
+        name: 'Uploader',
+        sort: 1,
+        cName: '上传组件',
+        type: 'component',
+        show: true,
+        desc: '',
+        author: 'richard1015'
+      }
+    ]
+  },
+  {
+    name: '导航组件',
+    packages: []
+  },
+  {
+    name: '业务组件',
+    packages: []
+  }
 ];

+ 9 - 5
src/sites/doc/main.ts

@@ -1,8 +1,12 @@
-import { createApp } from "vue";
-import App from "./App.vue";
-import router from "./router";
-import "@/sites/assets/styles/reset.scss";
+import { createApp } from 'vue';
+import App from './App.vue';
+import router from './router';
+import '@/sites/assets/styles/reset.scss';
+import { isMobile } from '@/sites/assets/util';
 
+if (isMobile) {
+  location.replace('demo.html' + location.hash);
+}
 createApp(App)
   .use(router)
-  .mount("#doc");
+  .mount('#doc');

+ 18 - 10
src/sites/doc/router.ts

@@ -1,10 +1,12 @@
-import { createRouter, createWebHashHistory, RouteRecordRaw } from "vue-router";
-import Index from "./views/Index.vue";
-const routes: Array<RouteRecordRaw> = [{
-  path: '/',
-  name: 'index',
-  component: Index
-}];
+import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router';
+import Index from './views/Index.vue';
+const routes: Array<RouteRecordRaw> = [
+  {
+    path: '/',
+    name: 'index',
+    component: Index
+  }
+];
 // import { nav } from '@/config';
 // nav.forEach(item => {
 //   item.packages.forEach(_item => {
@@ -20,9 +22,15 @@ const routes: Array<RouteRecordRaw> = [{
 //   })
 // })
 
-const files = require.context("@/packages", true, /doc\.md$/);
-files.keys().forEach(component => {
-  // console.log(component)
+// const files = require.context('@/packages', true, /doc\.md$/);
+// files.keys().forEach(component => {
+//   // console.log(component)
+// });
+
+routes.push({
+  name: 'NotFound',
+  path: '/:path(.*)+',
+  redirect: () => '/'
 });
 
 routes.push({

+ 5 - 5
src/sites/mobile/main.ts

@@ -1,8 +1,8 @@
-import { createApp } from "vue";
-import App from "./App.vue";
-import router from "./router";
-import "@/sites/assets/styles/reset.scss";
+import { createApp } from 'vue';
+import App from './App.vue';
+import router from './router';
+import '@/sites/assets/styles/reset.scss';
 
 createApp(App)
   .use(router)
-  .mount("#app");
+  .mount('#app');

+ 11 - 12
src/sites/mobile/router.ts

@@ -1,15 +1,14 @@
-import { createRouter, createWebHashHistory, RouteRecordRaw } from "vue-router";
-import Index from "./components/Index1.vue";
+import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router';
+import Index from './components/Index1.vue';
 const routes: Array<RouteRecordRaw> = [
   {
-    path: "/",
-    name: "index",
+    path: '/',
+    name: 'index',
     component: Index
-  },
-
+  }
 ];
 
-const files = require.context("@/packages", true, /demo\.vue$/);
+const files = require.context('@/packages', true, /demo\.vue$/);
 files.keys().forEach(component => {
   const componentEntity = files(component).default;
   routes.push({
@@ -19,11 +18,11 @@ files.keys().forEach(component => {
   });
 });
 
-routes.push({
-  name: 'NotFound',
-  path: '/:path(.*)+',
-  redirect: () => '/',
-});
+// routes.push({
+//   name: 'NotFound',
+//   path: '/:path(.*)+',
+//   redirect: () => '/',
+// });
 
 const router = createRouter({
   history: createWebHashHistory(),

+ 3 - 3
src/utils/create/component.ts

@@ -1,8 +1,8 @@
-import { App, defineComponent, ComponentOptions } from "vue";
+import { App, defineComponent, ComponentOptions } from 'vue';
 export function createComponent(name: string) {
   return function(_component: ComponentOptions) {
     _component.baseName = name;
-    _component.name = "nut-" + name;
+    _component.name = 'nut-' + name;
     _component.install = (vue: App) => {
       vue.component(_component.name as string, _component);
     };
@@ -12,7 +12,7 @@ export function createComponent(name: string) {
 export function createDemoComponent(name: string) {
   return function(_component: ComponentOptions) {
     _component.baseName = name;
-    _component.name = "demo-" + name;
+    _component.name = 'demo-' + name;
     _component.install = (vue: App) => {
       vue.component(_component.name as string, _component);
     };

+ 1 - 1
src/utils/create/index.ts

@@ -1,2 +1,2 @@
-import { createComponent, createDemoComponent } from "./component";
+import { createComponent, createDemoComponent } from './component';
 export { createComponent, createDemoComponent };