unindex
v0.2.2
Published
Automatically generate `index.*` files.
Downloads
8
Maintainers
Readme
unindex
为指定目录生成索引文件。
环境要求
- Node.js >= 20.0.0
安装
- npm
npm i -D unindex- yarn
yarn add -D unindex- pnpm
pnpm add -D unindex使用方式
基础用法
创建配置文件 unindex.config.[js|ts|mjs|cjs|mts|cts|json]。
// unindex.config.ts
import { defineConfig } from 'unindex'
export default defineConfig({
entryDir: 'src/hooks', // 指定需要生成索引文件的目录列表
glob: {
patterns: '**/*.ts', // 指定匹配文件的模式,默认为 `**/*.(js|ts|mjs|cjs|mts|cts)`
},
})可通过 npx unindex 执行或设置 package.json 脚本。
{
// ...
"scripts": {
// ...
"unindex": "unindex"
}
}自定义输出内容
可通过
codeGenerator、contentGenerator更改生成的内容>。
// unindex.config.ts
import { defineConfig } from 'unindex'
export default defineConfig([
{
entryDir: 'src/hooks',
glob: {
// 需要匹配的文件
patterns: '**/*.ts',
// 忽略以 `_` 开头的文件和目录
// ignore: '**/_*',
// 仅忽略以 `_` 开头的文件
ignore: '**/_*.*',
},
},
{
entryDir: 'src/styles',
glob: {
patterns: '**/*.css',
},
// 更改生成的代码片段
codeGenerator: ({ relativePath }) => `@import './${relativePath}';`,
},
{
entryDir: 'docs/pages',
// 更改输出的文件名
outFile: 'Home.md',
glob: {
patterns: '**/*.md',
},
codeGenerator: ({ file, relativePath }) => `[${file}](./${relativePath})`,
// 更改输出的内容
contentGenerator: ({ codes }) => {
return `\
# 目录
${codes.map((code) => `- ${code}`).join('\n')}
`
},
},
])监听模式
命令行通过 --watch 参数开启监听模式,优先级低于配置文件中的 watch 选项。
unindex --watch
# or
unindex -wimport { defineConfig } from 'unindex'
export default defineConfig({
// ...
watch: true,
})调试
执行命令前设置 DEBUG=unindex 开启调试器,具体请参考 debug。
