Rsbuild Core
本章节描述了 Rsbuild 提供的一些核心方法。
createRsbuild
创建一个 Rsbuild 实例对象。
function createRsbuild ( options : CreateRsbuildOptions ) : Promise < RsbuildInstance > ;
import { createRsbuild } from '@rsbuild/core' ;
const rsbuild = await createRsbuild ( {
// options
} ) ;
options
createRsbuild
的第一个参数是一个配置对象,你可以传入以下选项:
type RsbuildEntry = Record < string , string | string [ ] > ;
type CreateRsbuildOptions = {
cwd ? : string ;
rsbuildConfig ? : RsbuildConfig ;
} ;
各个选项的作用:
cwd
:当前执行构建的根路径,默认值为 process.cwd()
provider
:用于切换底层的打包工具。
rsbuildConfig
:Rsbuild 配置对象。Rsbuild 提供了丰富的配置项,允许你对构建行为进行灵活定制,你可以在配置 中找到所有可用的配置项。
loadConfig
加载 Rsbuild 配置文件。
function loadConfig ( params : {
// 默认为 process.cwd()
cwd : string ;
// 指定配置文件路径,可以为相对路径或绝对路径
path ? : string ;
} ) : Promise < RsbuildConfig > ;
const config = await loadConfig ( ) ;
console . log ( config ) ; // -> RsbuildConfig
loadEnv
加载 .env
文件,并返回所有以 prefixes 开头的环境变量。
function loadEnv ( params : {
// 默认为 process.cwd()
cwd ? : string ;
// 默认为 ['PUBLIC_']
prefixes ? : string [ ] ;
} ) : Promise < {
// .env 文件包含的所有环境变量
parsed : Record < string , string > ;
// 以 prefixes 开头的环境变量
publicVars : Record < string , string > ;
} > ;
const { parsed , publicVars } = await loadEnv ( ) ;
mergeRsbuildConfig (
{
source : {
define : publicVars ,
} ,
} ,
userConfig ,
) ;
该方法也会加载 .env.local
和 .env.[mode]
等文件,详见 环境变量 。
mergeRsbuildConfig
用于合并多份 Rsbuild 配置对象。
mergeRsbuildConfig
函数接收多个配置对象作为参数,它会将每一个配置对象进行深层合并,自动将多个函数项合并为顺序执行的函数数组,返回一个合并后的配置对象。
function mergeRsbuildConfig ( ... configs : RsbuildConfig [ ] ) : RsbuildConfig ;
import { mergeRsbuildConfig } from '@rsbuild/core' ;
const config1 = {
dev : {
https : false ,
} ,
} ;
const config2 = {
dev : {
https : true ,
} ,
} ;
const mergedConfig = mergeRsbuildConfig ( config1 , config2 ) ;
console . log ( mergedConfig ) ; // { dev: { https: true } }
该方法不会修改入参中的 config 对象。
logger
用于输出格式统一的日志信息,基于 rslog 。
import { logger } from '@rsbuild/core' ;
// A gradient welcome log
logger . greet ( ` \n➜ Rsbuild v1.0.0\n ` ) ;
// Info
logger . info ( 'This is a info message' ) ;
// Start
logger . start ( 'This is a start message' ) ;
// Warn
logger . warn ( 'This is a warn message' ) ;
// Ready
logger . ready ( 'This is a ready message' ) ;
// Success
logger . success ( 'This is a success message' ) ;
// Error
logger . error ( 'This is a error message' ) ;
logger . error ( new Error ( 'This is a error message with stack' ) ) ;
// Debug
logger . debug ( 'This is a debug message' ) ;
// Same as console.log
logger . log ( 'This is a log message' ) ;