@plugin-light/project-config-vite
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

Vite 项目基础配置

封装 vite.config.ts 的基本配置,开箱即用。

如何使用

安装

pnpm add @plugin-light/project-config-vite -D

vite.config.ts 中添加如下设置:

import { getViteBaseConfig } from "@plugin-light/project-config-vite";

import { defineConfig } from "vite";

export default defineConfig(({ mode }) => {
  return getViteBaseConfig({ mode });
});

参数

import type { IAddCodeAtEndOptions } from '@plugin-light/vite-plugin-add-code-at-end';
import type { IAliasForLibraryOptions } from '@plugin-light/vite-plugin-alias-for-library';
import type { Server } from 'node:https';
import type { MkcertPluginOptions } from 'vite-plugin-mkcert';

export type GetViteConfigOptions = {
  // 模式,对应 Vite 中 defineConfig 的 mode 参数
  mode: string;

  // 本地开发端口
  serverPort?: number;
  // 本地开发是否是 https
  serverHttps?: Server;
  // 参考 https://cn.vitejs.dev/config/server-options.html#server-host
  serverHost?: string | boolean;

  // 对应 optimizeDeps.include
  optimizeDepsIncludes?: Array<string>;
  // 对应 optimizeDeps.exclude
  optimizeDepsExcludes?: Array<string>;

  // add-code-at-end 插件参数
  addCodeAtEndOptions?: IAddCodeAtEndOptions | boolean;

  // 是否使用 press-ui 本地的 alias 配置
  pressUiAlias?: string;
  pressPlusAlias?: string;

  // alias-for-library 插件参数
  aliasForLibraryOptions?: IAliasForLibraryOptions;

  // pmd-tools 之类的别名映射
  pmdAliasMap?: Record<string, string>;

  customElements?: Array<string>;

  // 三方库是否使用 cdn 链接,比如 vue,vue-router
  useCdn?: boolean;
  useElementPlusCDN?: boolean;

  // vite-plugin-mkcert 参数
  mkcertOptions?: boolean | MkcertPluginOptions;

  // 前置插件
  prePlugins?: Array<Plugin>;
  // 后置插件
  postPlugins?: Array<Plugin>;
};

注意事项

  1. node.js 版本 >= 16

  2. 支持在环境变量文件中配置 VUE_APP_DIR,环境变量文件可以是 .env, .env.local

    也支持不配置,此时应用入口是 src/main.ts,即非 monorepo 模式

打包产物分析

process.env.VITE_VISUALIZER 不为 falsy 时,本工具会使用 rollup-plugin-visualizer 插件,开发者可用来进行打包分析。

兼容 Vue 默认导出

内部使用了 vite-plugin-export-default-in-vue,来兼容 Vue2.x 时期的默认导入 Vue 对象。

optimizeDepsIncludes

对应 optimizeDeps.include,业务中常用到的有:

  • md5
  • js-cookie
  • qs
  • axios

更新日志

点此查看

Package Sidebar

Install

npm i @plugin-light/project-config-vite

Weekly Downloads

12

Version

1.0.2

License

MIT

Unpacked Size

23.5 kB

Total Files

10

Last publish

Collaborators

  • yanggwcn