Browse Source

Merge branch 'base'

feige996 11 months ago
parent
commit
44b9e6b878
11 changed files with 2478 additions and 11102 deletions
  1. 0 106
      .commitlintrc.cjs
  2. 0 1
      .eslintignore
  3. 0 101
      .eslintrc-auto-import.json
  4. 0 98
      .eslintrc.cjs
  5. 0 5
      .husky/commit-msg
  6. 0 5
      .husky/pre-commit
  7. 0 1
      .stylelintignore
  8. 0 58
      .stylelintrc.cjs
  9. 5 30
      package.json
  10. 2473 10696
      pnpm-lock.yaml
  11. 0 1
      vite.config.ts

+ 0 - 106
.commitlintrc.cjs

@@ -1,106 +0,0 @@
-const fs = require('fs')
-const path = require('path')
-const { execSync } = require('child_process')
-
-const scopes = fs
-  .readdirSync(path.resolve(__dirname, 'src'), { withFileTypes: true })
-  .filter((dirent) => dirent.isDirectory())
-  .map((dirent) => dirent.name.replace(/s$/, ''))
-
-// precomputed scope
-const scopeComplete = execSync('git status --porcelain || true')
-  .toString()
-  .trim()
-  .split('\n')
-  .find((r) => ~r.indexOf('M  src'))
-  ?.replace(/(\/)/g, '%%')
-  ?.match(/src%%((\w|-)*)/)?.[1]
-  ?.replace(/s$/, '')
-
-module.exports = {
-  ignores: [(commit) => commit.includes('init')],
-  extends: ['@commitlint/config-conventional'],
-  rules: {
-    'body-leading-blank': [2, 'always'],
-    'footer-leading-blank': [1, 'always'],
-    'header-max-length': [2, 'always', 108],
-    'subject-empty': [2, 'never'],
-    'type-empty': [2, 'never'],
-    'subject-case': [0],
-    'type-enum': [
-      2,
-      'always',
-      [
-        'feat',
-        'fix',
-        'perf',
-        'style',
-        'docs',
-        'test',
-        'refactor',
-        'build',
-        'ci',
-        'chore',
-        'revert',
-        'wip',
-        'workflow',
-        'types',
-        'release',
-      ],
-    ],
-  },
-  prompt: {
-    /** @use `pnpm commit :f` */
-    alias: {
-      f: 'docs: fix typos',
-      r: 'docs: update README',
-      s: 'style: update code format',
-      b: 'build: bump dependencies',
-      c: 'chore: update config',
-    },
-    customScopesAlign: !scopeComplete ? 'top' : 'bottom',
-    defaultScope: scopeComplete,
-    scopes: [...scopes, 'mock'],
-    allowEmptyIssuePrefixs: false,
-    allowCustomIssuePrefixs: false,
-
-    // English
-    typesAppend: [
-      { value: 'wip', name: 'wip:      work in process' },
-      { value: 'workflow', name: 'workflow: workflow improvements' },
-      { value: 'types', name: 'types:    type definition file changes' },
-    ],
-
-    // 中英文对照版
-    // messages: {
-    //   type: '选择你要提交的类型 :',
-    //   scope: '选择一个提交范围 (可选):',
-    //   customScope: '请输入自定义的提交范围 :',
-    //   subject: '填写简短精炼的变更描述 :\n',
-    //   body: '填写更加详细的变更描述 (可选)。使用 "|" 换行 :\n',
-    //   breaking: '列举非兼容性重大的变更 (可选)。使用 "|" 换行 :\n',
-    //   footerPrefixsSelect: '选择关联issue前缀 (可选):',
-    //   customFooterPrefixs: '输入自定义issue前缀 :',
-    //   footer: '列举关联issue (可选) 例如: #31, #I3244 :\n',
-    //   confirmCommit: '是否提交或修改commit ?',
-    // },
-    // types: [
-    //   { value: 'feat', name: 'feat:     新增功能' },
-    //   { value: 'fix', name: 'fix:      修复缺陷' },
-    //   { value: 'docs', name: 'docs:     文档变更' },
-    //   { value: 'style', name: 'style:    代码格式' },
-    //   { value: 'refactor', name: 'refactor: 代码重构' },
-    //   { value: 'perf', name: 'perf:     性能优化' },
-    //   { value: 'test', name: 'test:     添加疏漏测试或已有测试改动' },
-    //   { value: 'build', name: 'build:    构建流程、外部依赖变更 (如升级 npm 包、修改打包配置等)' },
-    //   { value: 'ci', name: 'ci:       修改 CI 配置、脚本' },
-    //   { value: 'revert', name: 'revert:   回滚 commit' },
-    //   { value: 'chore', name: 'chore:    对构建过程或辅助工具和库的更改 (不影响源文件、测试用例)' },
-    //   { value: 'wip', name: 'wip:      正在开发中' },
-    //   { value: 'workflow', name: 'workflow: 工作流程改进' },
-    //   { value: 'types', name: 'types:    类型定义文件修改' },
-    // ],
-    // emptyScopesAlias: 'empty:      不填写',
-    // customScopesAlias: 'custom:     自定义',
-  },
-}

+ 0 - 1
.eslintignore

@@ -1 +0,0 @@
-src/uni_modules/

+ 0 - 101
.eslintrc-auto-import.json

@@ -1,101 +0,0 @@
-{
-  "globals": {
-    "Component": true,
-    "ComponentPublicInstance": true,
-    "ComputedRef": true,
-    "EffectScope": true,
-    "ExtractDefaultPropTypes": true,
-    "ExtractPropTypes": true,
-    "ExtractPublicPropTypes": true,
-    "InjectionKey": true,
-    "PropType": true,
-    "Ref": true,
-    "VNode": true,
-    "WritableComputedRef": true,
-    "computed": true,
-    "createApp": true,
-    "customRef": true,
-    "defineAsyncComponent": true,
-    "defineComponent": true,
-    "effectScope": true,
-    "getCurrentInstance": true,
-    "getCurrentScope": true,
-    "h": true,
-    "inject": true,
-    "isProxy": true,
-    "isReactive": true,
-    "isReadonly": true,
-    "isRef": true,
-    "markRaw": true,
-    "nextTick": true,
-    "onActivated": true,
-    "onAddToFavorites": true,
-    "onBackPress": true,
-    "onBeforeMount": true,
-    "onBeforeUnmount": true,
-    "onBeforeUpdate": true,
-    "onDeactivated": true,
-    "onError": true,
-    "onErrorCaptured": true,
-    "onHide": true,
-    "onLaunch": true,
-    "onLoad": true,
-    "onMounted": true,
-    "onNavigationBarButtonTap": true,
-    "onNavigationBarSearchInputChanged": true,
-    "onNavigationBarSearchInputClicked": true,
-    "onNavigationBarSearchInputConfirmed": true,
-    "onNavigationBarSearchInputFocusChanged": true,
-    "onPageNotFound": true,
-    "onPageScroll": true,
-    "onPullDownRefresh": true,
-    "onReachBottom": true,
-    "onReady": true,
-    "onRenderTracked": true,
-    "onRenderTriggered": true,
-    "onResize": true,
-    "onScopeDispose": true,
-    "onServerPrefetch": true,
-    "onShareAppMessage": true,
-    "onShareTimeline": true,
-    "onShow": true,
-    "onTabItemTap": true,
-    "onThemeChange": true,
-    "onUnhandledRejection": true,
-    "onUnload": true,
-    "onUnmounted": true,
-    "onUpdated": true,
-    "provide": true,
-    "reactive": true,
-    "readonly": true,
-    "ref": true,
-    "resolveComponent": true,
-    "shallowReactive": true,
-    "shallowReadonly": true,
-    "shallowRef": true,
-    "toRaw": true,
-    "toRef": true,
-    "toRefs": true,
-    "toValue": true,
-    "triggerRef": true,
-    "unref": true,
-    "useAttrs": true,
-    "useCssModule": true,
-    "useCssVars": true,
-    "useRequest": true,
-    "useSlots": true,
-    "useUpload": true,
-    "useUpload2": true,
-    "watch": true,
-    "watchEffect": true,
-    "watchPostEffect": true,
-    "watchSyncEffect": true,
-    "DirectiveBinding": true,
-    "MaybeRef": true,
-    "MaybeRefOrGetter": true,
-    "onWatcherCleanup": true,
-    "useId": true,
-    "useModel": true,
-    "useTemplateRef": true
-  }
-}

+ 0 - 98
.eslintrc.cjs

@@ -1,98 +0,0 @@
-module.exports = {
-  env: {
-    browser: true,
-    es2021: true,
-    node: true,
-  },
-  extends: [
-    'eslint:recommended',
-    'plugin:@typescript-eslint/recommended',
-    'plugin:vue/vue3-essential',
-    // eslint-plugin-import 插件, @see https://www.npmjs.com/package/eslint-plugin-import
-    'plugin:import/recommended',
-    // eslint-config-airbnb-base 插件 已经改用 eslint-config-standard 插件
-    'standard',
-    // 1. 接入 prettier 的规则
-    'prettier',
-    'plugin:prettier/recommended',
-    './.eslintrc-auto-import.json',
-  ],
-  overrides: [
-    {
-      env: {
-        node: true,
-      },
-      files: ['.eslintrc.{js,cjs}'],
-      parserOptions: {
-        sourceType: 'script',
-      },
-    },
-  ],
-  parserOptions: {
-    ecmaVersion: 'latest',
-    parser: '@typescript-eslint/parser',
-    sourceType: 'module',
-  },
-  plugins: [
-    '@typescript-eslint',
-    'vue',
-    // 2. 加入 prettier 的 eslint 插件
-    'prettier',
-    // eslint-import-resolver-typescript 插件,@see https://www.npmjs.com/package/eslint-import-resolver-typescript
-    'import',
-  ],
-  rules: {
-    // 3. 注意要加上这一句,开启 prettier 自动修复的功能
-    'prettier/prettier': 'error',
-    // turn on errors for missing imports
-    'import/no-unresolved': 'off',
-    // 对后缀的检测,否则 import 一个ts文件也会报错,需要手动添加'.ts', 增加了下面的配置后就不用了
-    'import/extensions': [
-      'error',
-      'ignorePackages',
-      { js: 'never', jsx: 'never', ts: 'never', tsx: 'never' },
-    ],
-    // 只允许1个默认导出,关闭,否则不能随意export xxx
-    'import/prefer-default-export': ['off'],
-    'no-console': ['off'],
-    // 'no-unused-vars': ['off'],
-    // '@typescript-eslint/no-unused-vars': ['off'],
-    // 解决vite.config.ts报错问题
-    'import/no-extraneous-dependencies': 'off',
-    'no-plusplus': 'off',
-    'no-shadow': 'off',
-    'vue/multi-word-component-names': 'off',
-    'vue/no-unused-vars': 'off',
-    '@typescript-eslint/no-unused-vars': 'off',
-    '@typescript-eslint/no-explicit-any': 'off',
-    'no-underscore-dangle': 'off',
-    'no-use-before-define': 'off',
-    'no-undef': 'off',
-    'no-unused-vars': 'off',
-    'no-param-reassign': 'off',
-    // 避免 `eslint` 对于 `typescript` 函数重载的误报
-    'no-redeclare': 'off',
-    '@typescript-eslint/no-redeclare': 'error',
-  },
-  // eslint-import-resolver-typescript 插件,@see https://www.npmjs.com/package/eslint-import-resolver-typescript
-  settings: {
-    'import/parsers': {
-      '@typescript-eslint/parser': ['.ts', '.tsx'],
-    },
-    'import/resolver': {
-      typescript: {},
-    },
-  },
-  globals: {
-    $t: true,
-    uni: true,
-    UniApp: true,
-    wx: true,
-    WechatMiniprogram: true,
-    getCurrentPages: true,
-    UniHelper: true,
-    Page: true,
-    App: true,
-    NodeJS: true,
-  },
-}

+ 0 - 5
.husky/commit-msg

@@ -1,5 +0,0 @@
-#!/usr/bin/env sh
-. "$(dirname -- "$0")/_/husky.sh"
-
-# Run the commit-msg hook
-# npx --no-install commitlint --edit

+ 0 - 5
.husky/pre-commit

@@ -1,5 +0,0 @@
-#!/usr/bin/env sh
-. "$(dirname -- "$0")/_/husky.sh"
-
-# Run the pre-commit hook
-# npx --no-install -- lint-staged

+ 0 - 1
.stylelintignore

@@ -1 +0,0 @@
-src/uni_modules/

+ 0 - 58
.stylelintrc.cjs

@@ -1,58 +0,0 @@
-// .stylelintrc.cjs
-
-module.exports = {
-  root: true,
-  extends: [
-    // stylelint-config-standard 替换成了更宽松的 stylelint-config-recommended
-    'stylelint-config-recommended',
-    // stylelint-config-standard-scss 替换成了更宽松的 stylelint-config-recommended-scss
-    'stylelint-config-recommended-scss',
-    'stylelint-config-recommended-vue/scss',
-    'stylelint-config-html/vue',
-    'stylelint-config-recess-order',
-  ],
-  plugins: ['stylelint-prettier'],
-  overrides: [
-    // 扫描 .vue/html 文件中的<style>标签内的样式
-    {
-      files: ['**/*.{vue,html}'],
-      customSyntax: 'postcss-html',
-    },
-    {
-      files: ['**/*.{css,scss}'],
-      customSyntax: 'postcss-scss',
-    },
-  ],
-  // 自定义规则
-  rules: {
-    'prettier/prettier': true,
-    // 允许 global 、export 、v-deep等伪类
-    'selector-pseudo-class-no-unknown': [
-      true,
-      {
-        ignorePseudoClasses: ['global', 'export', 'v-deep', 'deep'],
-      },
-    ],
-    'unit-no-unknown': [
-      true,
-      {
-        ignoreUnits: ['rpx'],
-      },
-    ],
-    // 处理小程序page标签不认识的问题
-    'selector-type-no-unknown': [
-      true,
-      {
-        ignoreTypes: ['page'],
-      },
-    ],
-    'comment-empty-line-before': 'never', // never|always|always-multi-line|never-multi-line
-    'custom-property-empty-line-before': 'never',
-    'no-empty-source': null,
-    'comment-no-empty': null,
-    'no-duplicate-selectors': null,
-    'scss/comment-no-empty': null,
-    'selector-class-pattern': null,
-    'font-family-no-missing-generic-family-keyword': null,
-  },
-}

+ 5 - 30
package.json

@@ -1,7 +1,7 @@
 {
   "name": "unibest",
   "type": "commonjs",
-  "version": "2.7.0",
+  "version": "2.8.0",
   "description": "unibest - 最好的 uniapp 开发模板",
   "author": {
     "name": "feige996",
@@ -70,21 +70,15 @@
     "build:quickapp-webview": "uni build -p quickapp-webview",
     "build:quickapp-webview-huawei": "uni build -p quickapp-webview-huawei",
     "build:quickapp-webview-union": "uni build -p quickapp-webview-union",
-    "prepare": "git init && husky install",
     "type-check": "vue-tsc --noEmit",
-    "release": "standard-version",
-    "cz": "czg",
     "openapi-ts-request": "openapi-ts"
   },
   "lint-staged": {
     "**/*.{html,vue,ts,cjs,json,md}": [
       "prettier --write"
     ],
-    "**/*.{vue,js,ts,jsx,tsx}": [
-      "eslint --cache --fix"
-    ],
-    "**/*.{vue,css,scss,html}": [
-      "stylelint --fix"
+    "**/*.{vue,js,ts,jsx,tsx,vue,css,scss,html}": [
+      "oxlint --fix"
     ]
   },
   "resolutions": {
@@ -120,8 +114,6 @@
     "z-paging": "^2.8.4"
   },
   "devDependencies": {
-    "@commitlint/cli": "^18.6.1",
-    "@commitlint/config-conventional": "^18.6.3",
     "@dcloudio/types": "^3.4.14",
     "@dcloudio/uni-automator": "3.0.0-4060520250512001",
     "@dcloudio/uni-cli-shared": "3.0.0-4060520250512001",
@@ -132,8 +124,7 @@
     "@iconify-json/carbon": "^1.2.4",
     "@rollup/rollup-darwin-x64": "^4.28.0",
     "@types/node": "^20.17.9",
-    "@typescript-eslint/eslint-plugin": "^6.21.0",
-    "@typescript-eslint/parser": "^6.21.0",
+    "@types/wechat-miniprogram": "^3.4.8",
     "@uni-helper/uni-types": "1.0.0-alpha.3",
     "@uni-helper/vite-plugin-uni-layouts": "^0.1.10",
     "@uni-helper/vite-plugin-uni-manifest": "^0.2.8",
@@ -143,31 +134,15 @@
     "@vue/runtime-core": "^3.5.13",
     "@vue/tsconfig": "^0.1.3",
     "autoprefixer": "^10.4.20",
-    "commitlint": "^18.6.1",
-    "czg": "^1.9.4",
-    "eslint": "^8.57.1",
-    "eslint-config-prettier": "^9.1.0",
-    "eslint-config-standard": "^17.1.0",
-    "eslint-import-resolver-typescript": "^3.7.0",
-    "eslint-plugin-import": "^2.31.0",
-    "eslint-plugin-prettier": "^5.2.1",
-    "eslint-plugin-vue": "^9.32.0",
     "husky": "^8.0.3",
     "lint-staged": "^15.2.10",
     "openapi-ts-request": "^1.1.2",
+    "oxlint": "^0.1.0",
     "postcss": "^8.4.49",
     "postcss-html": "^1.7.0",
     "postcss-scss": "^4.0.9",
     "rollup-plugin-visualizer": "^5.12.0",
     "sass": "1.77.8",
-    "standard-version": "^9.5.0",
-    "stylelint": "^16.11.0",
-    "stylelint-config-html": "^1.1.0",
-    "stylelint-config-recess-order": "^4.6.0",
-    "stylelint-config-recommended": "^14.0.1",
-    "stylelint-config-recommended-scss": "^14.1.0",
-    "stylelint-config-recommended-vue": "^1.5.0",
-    "stylelint-prettier": "^5.0.2",
     "terser": "^5.36.0",
     "typescript": "^5.7.2",
     "unocss": "0.58.9",

File diff suppressed because it is too large
+ 2473 - 10696
pnpm-lock.yaml


+ 0 - 1
vite.config.ts

@@ -80,7 +80,6 @@ export default defineConfig(({ command, mode }) => {
         imports: ['vue', 'uni-app'],
         dts: 'src/types/auto-import.d.ts',
         dirs: ['src/hooks'], // 自动导入 hooks
-        eslintrc: { enabled: true },
         vueTemplate: true, // default false
       }),