6.1.9 • Published 1 year ago

@uiw-admin/config v6.1.9

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

kkt配置

npm version

简化 .kktprc 配置,默认集成 @uiw-admin/plugins@kkt/less-modules@kkt/raw-modules@kkt/scope-plugin-options 依赖包。 其他配置查询kkt

安装

npm i @uiw-admin/config -D # yarn add @uiw-admin/config

参数说明(ConfigProps)

参数必填类型默认值说明
aliasRecord<string, string \| false \| string[]>@:指向 src 目录,@@:指向 src/.uiw 目录别名
pluginsPluginsType插件
defineRecord<string, any> & DefaultDefineType默认全局变量,📢 注意:对象的属性值会经过一次 JSON.stringify 转换
~loader~KKTPluginskkt plugin,(⚠️将在V6版本中删除)
kktPluginsKKTPluginskkt plugin
publicPathstring/项目前缀
~moreConfig~ConfFun提供回调函数,更改 webpack 的最终配置 ,(⚠️将在V6版本中删除)
overrideWebpackConfFun提供回调函数,更改 webpack 的最终配置 ,
outputOmit<WebpackConfiguration['output'], 'publicPath'>输出
rematch{lazyLoad(懒加载)?: boolean}rematchplugin配置

继承kkt配置

ConfFun 类型

export type ConfFun = (conf: WebpackConfiguration, evn: string, options?: LoaderConfOptions | undefined) => WebpackConfiguration

rematch

  1. 参数 lazyLoad boolean 类型 ,默认 false
import defaultConfig from "@uiw-admin/config";

export default defaultConfig({
  // ....
  rematch:{
    lazyLoad:true,
  }
})

lazyLoad

  1. 设置 lazyLoadmodel 绑定路由关系,去除后面的/models/*/models.ts 路径,匹配路由配置文件中的 component 属性值
  2. model进行懒加载 ⚠️ 注意:如果使用懒加载model,则调用model时,只能调用已经加载的,否则会报错
src
  pages
    foo/models/b.ts   绑定到  path === "/foo" 路由中
    test/models.ts  绑定到  path === "/test" 路由中

// config/routes.json
[
  {
    "path": "/foo",
    "name": "查询表格",
    "component": "@/pages/foo",
  },
  {
    "path": "/test",
    "name": "表格2",
    "component": "@/pages/test"
  },
]

设置 lazyLoad 属性需要在项目入口文件加属性

import React from 'react'
import ReactDOM from 'react-dom'
import Control from '@uiw-admin/router-control'
import '@uiw/reset.css'
import './index.css'

ReactDOM.render(
  // ....
    <Control
      routeType="hash"
+      addModels={(path) => import(`${path}`)} // 或者使用 require 引入
    />
  ,
  document.getElementById('root')
)

kktPlugins

KKT 的 plugin

import defaultConfig, { WebpackConfiguration } from "@uiw-admin/config";

export default defaultConfig({
  // ....
  kktPlugins: [
    "@kkt/raw-modules",
    "@kkt/less-modules",
    ["@kkt/scope-plugin-options", { "allowedFiles": "./README.md" }],
  ],
})

overrideWebpack

通过 KKT 的 API 修改 webpack 配置。

import defaultConfig, { WebpackConfiguration } from "@uiw-admin/config";

export default defaultConfig({
  // ....
  overrideWebpack: (conf: WebpackConfiguration) => {
    conf.output = { ...conf.output, publicPath: './' };
    return conf
  }
})

define

用于提供给代码中可用的变量。下面是自带默认值:

DefaultDefineType 类型

参数必填类型默认值说明
AUTHstring \| booleantrue权限校验
BASE_NAMEstring"/"路由 跳转前缀
STORAGE枚举类型:"local" \| "session" \| stringsession本地存储使用
VERSIONstring默认package.json中的version字段值版本
TOKEN_STORAGE枚举类型:"local" \| "session" \| "cookie"sessiontoken 存储方式 默认与 STORAGE 值相同
TOKEN_NAMEstringtokentoken 存储字段
SEARCH_MENUstring \| booleantrue菜单搜索
import config from "@uiw-admin/config"
export default config({
  // ...
  define:{
    // ...
    SEARCH_MENU:true
  }
})

alias

配置别名,对引用路径进行映射。

import config from "@uiw-admin/config"
export default config({
  alias: {
    foo: '/tmp/a/b/foo',
  },
  //  ...
})

内置了以下别名:

  • @,项目 src 目录
  • @@,临时目录,通常是 src/.uiw 目录

plugins 说明

PluginsType 类型

export type PluginsType = (
  | ((this: webpack.Compiler, compiler: webpack.Compiler) => void)
  | webpack.WebpackPluginInstance
  | [string, Record<string, any>]
  | string
)[];
  1. 使用的先行条件--插件需要默认导出是一个 class 类,符合webpackplugins规范,
  2. 一维数组时,直接把字符串当成包名进行加载,使用require进行引入后直接new
  3. 二维数组时,直接把数组第一项当成包进行加载,使用require进行引入后new的时候把 第二项当成参数进行传递到包内部
  4. webpack 原始的 plugins 类型
class DemoWebpackPlugin {
  constructor(){
    // ...
  }
  apply(compiler: webpack.Compiler) {
    compiler.hooks.afterPlugins.tap("DemoWebpackPlugin", () => {
      // ...
    })
  }
}

kktPlugins (旧loader) 参数

KKTPlugins 类型

export type KKTPlugins = (
  | ConfFun
  | {
    loader?: ConfFun;
    options?: LoaderConfOptions | undefined | Record<string, any>;
  }
  | string
  | [string, Record<string, any>]
)[]
  1. 使用的先行条件--需要默认导出是一个函数方法,返回类型为webpack.Configuration的函数
  2. 一维数组时,直接把字符串当成包名进行加载,使用require进行引入后直接方法调用
  3. 二维数组时,直接把数组第一项当成包进行加载,使用require进行引入后调用的时候把 第二项当成参数进行传递到包内部
export default (conf: Configuration, env: string, options = {} as ReactLibraryOptions): Configuration => {
  conf.output = { ...conf.output, publicPath: './' };
  return conf
};

配置案例

⚠️ 注意:使用自定义 pluginsloader 时,请安装对应包。官方默认的 @uiw-admin/plugins-**loader (@kkt/*) 不需要安装。

旧的配置案例

不推荐旧的配置案例,使用新的配置案例,它将变得更简单。

import defaultConfig from "@uiw-admin/config"
import { RematchWebpackPlugin, RoutesWebpackPlugin } from '@uiw-admin/plugins'
import lessModules from '@kkt/less-modules'
import rawModules from '@kkt/raw-modules'
import scopePluginOptions from '@kkt/scope-plugin-options'
export default defaultConfig({
  define: {
    VERSION: JSON.stringify(pkg.version),
    // BASE_NAME: "/uiw"
  },
  plugins: [new RematchWebpackPlugin(), new RoutesWebpackPlugin()],
  // publicPath: process.env.NODE_ENV === "development" ? "/" : "/uiw/",
  loader: [
    rawModules,
    { loader: scopePluginOptions, options: { allowedFiles: [path.resolve(process.cwd(), 'README.md')] } },
    lessModules
  ],
})

新配置案例(推荐)

import defaultConfig from "@uiw-admin/config"
export default defaultConfig({
  define: {
    STORAGE: 'local',
  },
  plugins: ["@uiw-admin/plugins-rematch", "@uiw-admin/plugins-routes"],
  kktPlugins: [
    "@kkt/raw-modules",
    "@kkt/less-modules",
    ["@kkt/scope-plugin-options", { "allowedFiles": "./README.md" }],
  ],
})

贡献者

感谢所有的贡献者,欢迎开发者为开源项目贡献力量。

License

Licensed under the MIT License.

6.1.0

1 year ago

6.1.2

1 year ago

6.1.1

1 year ago

6.1.4

1 year ago

6.1.3

1 year ago

6.0.0

1 year ago

6.1.6

1 year ago

6.1.5

1 year ago

6.1.8

1 year ago

6.1.7

1 year ago

6.1.9

1 year ago

6.0.0-bate-1.1

1 year ago

6.0.0-bate-1.0

1 year ago

5.3.21

1 year ago

5.3.20

2 years ago

6.0.0-bate-1

2 years ago

5.3.19

2 years ago

5.3.18

2 years ago

5.3.17

2 years ago

5.3.16

2 years ago

5.3.3

2 years ago

5.3.2

2 years ago

5.3.15

2 years ago

5.3.14

2 years ago

5.3.13

2 years ago

5.3.12

2 years ago

5.3.11

2 years ago

5.3.10

2 years ago

5.3.9

2 years ago

5.3.8

2 years ago

5.3.7

2 years ago

5.3.6

2 years ago

5.3.5

2 years ago

5.3.4

2 years ago

5.3.1

2 years ago

5.3.0

2 years ago

5.2.39

2 years ago

5.2.38

2 years ago

5.2.37

2 years ago

5.2.36

2 years ago

5.2.35

2 years ago

5.2.34

2 years ago

5.2.33

2 years ago

5.2.32

2 years ago

5.2.31

2 years ago

5.2.30

2 years ago

5.2.29

2 years ago

5.2.28

2 years ago

5.2.27

2 years ago

5.2.26

2 years ago

5.2.25

2 years ago

5.2.24

2 years ago

5.2.23

2 years ago

5.2.22

2 years ago

5.2.21

2 years ago

5.2.20

2 years ago

5.2.19

2 years ago

5.2.18

2 years ago

5.2.17

2 years ago

5.2.16

2 years ago

5.2.15

2 years ago

5.2.14

2 years ago

5.2.13

2 years ago

5.2.12

2 years ago

5.2.11

2 years ago

5.2.10

2 years ago

5.2.9

2 years ago

5.2.8

2 years ago

5.2.7

2 years ago

5.2.6

2 years ago

5.2.5

2 years ago

5.2.4

2 years ago

5.2.3

2 years ago

5.2.2

2 years ago

5.2.1

2 years ago

5.2.0

2 years ago

5.1.2

2 years ago

5.1.2-alpha.1

2 years ago

5.1.2-alpha.0

2 years ago

5.1.1

2 years ago

5.1.0

2 years ago

5.0.11

2 years ago

5.0.10

2 years ago

5.0.9

2 years ago

5.0.8

2 years ago

5.0.7

2 years ago

5.0.6

2 years ago

5.0.5

2 years ago

5.0.4

2 years ago

5.0.3

2 years ago

5.0.2

2 years ago

5.0.1

2 years ago

5.0.0

2 years ago

4.1.4

2 years ago