lib.bundle
指定是否打包库,当 bundle
设置为 true
时称为 bundle 模式,设置为 false
时称为 bundleless 模式。更多详情请参考 bundle / bundleless。
设置入口
我们需要为构建指定入口文件。
bundle: true
当 bundle
设置为 true
时,entry 需要设置为入口文件。Bundle 模式下的默认入口为 src/index.(ts|js|tsx|jsx|mjs|cjs)
。你需要确保入口文件存在,或通过 source.entry 配置自定义入口。
例子:
rslib.config.ts
export default {
lib: [
{
format: 'cjs',
bundle: true,
},
],
source: {
entry: {
index: './foo/index.ts',
},
},
};
bundle: false
当 bundle
设置为 false
时,入口需要设置为 glob 模式 以包含所有文件。Bundleless 模式下的默认入口为 src/**
。
例子:
rslib.config.ts
export default {
lib: [
{
format: 'cjs',
bundle: false,
},
],
source: {
entry: {
index: './foo/**',
},
},
};
你也可以使用感叹号来排除一些文件。
rslib.config.ts
export default {
lib: [
{
format: 'cjs',
bundle: false,
},
],
source: {
entry: {
index: ['./src/**', '!**/foo.*'],
},
},
};
Example
对于以下的源代码文件结构:
.
├── src
│ ├── index.ts
│ ├── foo.ts
│ └── bar.ts
└── package.json
bundle: true
rslib.config.ts
export default defineConfig({
lib: [
{
format: 'cjs',
bundle: true,
},
],
});
当 bundle
设置为 true
时,也称为 bundle 模式,Rslib 会将库打包成单个文件。
.
+ ├── dist
+ │ └── index.js
├── src
│ ├── index.ts
│ ├── foo.ts
│ └── bar.ts
└── package.json
bundle: false
rslib.config.ts
export default defineConfig({
lib: [
{
format: 'cjs',
bundle: false,
},
],
source: {
entry: {
index: ['./src/**'],
},
},
});
当 bundle
设置为 false
时,也称为 bundleless 模式,Rslib 会将代码转换为多个文件。
.
+ ├── dist
+ │ ├── index.js
+ │ ├── foo.js
+ │ └── bar.js
├── src
│ ├── index.ts
│ ├── foo.ts
│ └── bar.ts
└── package.json