配置 Vite

配置文件

配置文件解析

当以命令行方式运行 biu 时,Vite 会自动解析 项目根目录 下名为 .biurc.js 的文件。

最基础的配置文件是这样的:

// .biurc.js
export default {
  // 配置选项
};

你可以显式地通过 --config 命令行选项指定一个配置文件(相对于 cwd 路径进行解析)

biu --config my-config.js

智能提示

/**
 * @type {import('@fe6/biu').TBiuConfigExport}
 */
module.exports = {};

函数式配置

// mode 为webpack mode变量 development production
// env 为 biu dev --env dev 的 dev
module.exports = defineConfig(({ mode, env }) => {
  return {};
});

全局配置

root

  • 类型 string
  • 默认 process.cwd()

项目根目录、自动获取

appSrc

  • 类型 string
  • 默认 src

项目代码来源文件夹

appEntry

  • 类型 string
  • 默认 ``

项目代码入口文件 如 main.js

base

  • 类型 string
  • 默认 app 模式下为 auto,lib 模式下 为 屏蔽 import auto 模式

相关介绍

  • 绝对 URL 路径名,例如 /
  • 完整的 URL,例如 https://baidu.com/
  • 替代 webpack publicPath 的设置,并做了统一化处理

publicDir

  • 类型 string
  • 默认 public

静态文件路径

cacheDir

  • 类型 string
  • 默认 node_modules/.biu-cache

缓存目录

resolve.extends

  • 类型 boolean
  • 默认为 true

是否继承系统默认设置 默认继承 设置 false 后,会按需替换 不设置则还是按照系统配置

resolve.alias

  • 类型 {[key:string]:string}
  • 默认为 {src: config.appSrc}

resolve.modules

  • 类型 string[]

resolve.extensions

  • 类型 string[]
  • 默认为 ['.js','.jsx','.mjs','.ts','.tsx','.css','.less','.scss','.sass','.json','.wasm','.vue','.svg','.svga']

define

  • 类型 Record<string, string|number|boolean>

全局环境替换

  • 配置
module.exports = {
  define: { biu: { name: 'biuName', value: ['a', 'b', 'c'] } },
};
  • 使用
console.log('process.env.biu', process.env.biu);

plugins

  • 类型 ConfigPluginType[]

webpackChain

  • 类型 WebpackChainType

暴露到 .biurc.js 可以自定义 webpack 配置 深入了解 Webpack Chain 使用,请看详细文档: https://github.com/neutrinojs/webpack-chain#getting-started 例如:

const { defineConfig } = require('@fe6/biu');
const WebpackAssetsManifest = require('webpack-assets-manifest');
module.exports = defineConfig(({ mode, env }) => {
  return {
    webpackChain: (chain, config) => {
      // 创建 assets-manifest.json -> 所有资源文件路径
      chain.plugin('WebpackAssetsManifest').use(WebpackAssetsManifest);
    },
  };
});

biushare

  • 类型 EMPShareExport

    • biu share 配置
    • 实现 3 重共享模型
    • biushare 与 module federation 只能选择一个配置
  • 使用方法 .biurc.js

module.exports={
  // objects
  biushare:{}
  // or funciton
  biushare(o: EMPConfig){}
  // or async function
  async biushare(o: EMPConfig){}
}
  • 配置用例如下
module.exports = {
  biuShare: {
    name: 'microApp',
    remotes: {
      '@microHost': `microHost@http://localhost:8001/biu.js`,
    },
    exposes: {
      './App': './src/App',
    },
    shareLib: {
      react:
        'React@https://cdn.jsdelivr.net/npm/react@17.0.2/umd/react.development.js',
      'react-dom':
        'ReactDOM@https://cdn.jsdelivr.net/npm/react-dom@17.0.2/umd/react-dom.development.js',
    },
  },
};

Typescript 配置

ts.dts

  • 类型 boolean
  • 默认 false

是否生成 d.ts 文件

ts.dtsPath

  • 类型 {[key: string]: string}
  • 默认 <remoteHost>/biu-share-types/index.d.ts
  • 配置例子:
   dtsPath: {
    //  '对应 remotes 里的项目名' : '.dts 文件的远程路径'
      '@microHost': 'http://127.0.0.1:8001/types/index.d.ts',
    },

ts.typesBiuName

  • 类型 string
  • 默认 index.d.ts 生成 与 同步相同

生成 BIU 基站类型文件 默认为 index.d.ts

ts.typesOutDir

  • 类型 string
  • 默认 dist/biu-share-types

当前项目声明文件输出目录

ts.typingsPath

  • 类型 string
  • 默认 src/biu-share-types

biu dts 指令 同步基站 d.ts 目录

Server 服务选项

server.port

  • 类型 number
  • 默认 2022

本地开发的端口号

Html 配置

html.title

  • 类型 string
  • 默认 ''

Html 模板标题

html.favicon

  • 类型 string
  • 默认 ''

Html 模板 favicon 配置

html.files.js

  • 类型 string[]
  • 默认 ''

Html 模板注入的 js

html.files.css

  • 类型 string[]
  • 默认 ''

Html 模板注入的 css

html.template

  • 类型 string
  • 默认 ''

Html 模板路径,支持 https

html.templateFormat

  • 类型 function
  • 默认 ''

Html 模板内容替换