npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@rhao/gen-index

v0.2.1

Published

自动生成 index.* 文件。

Downloads

6

Readme

gen-index

生成指定目录下的入口文件。

安装

  • npm
npm i -D @rhao/gen-index
  • yarn
yarn add -D @rhao/gen-index
  • pnpm
pnpm add -D @rhao/gen-index

使用

基础用法

创建配置文件 gi.config.[js|ts|mjs|cjs|json]

默认生成的 index.* 后缀名由匹配到的文件列表首个文件获取,特殊情况下也可手动设置 outFile 达成自定义后缀名效果。

// gi.config.ts
import { defineConfig } from '@rhao/gen-index'

export default defineConfig({
  dirs: ['src/hooks'], // 指定需要生成入口文件的目录列表
})

可通过 npx gi 执行或设置 package.json 脚本。

{
  // ...

  "scripts": {
    // ...
    "gi": "gi"
  }
}

自定义代码生成

默认的 genCode 仅生成 ESModule 格式的 Re-Export 代码,可通过配置 genCode 自定义代码生成。

// gi.config.ts
import { defineConfig } from '@rhao/gen-index'

export default defineConfig({
  dirs: [
    'src/hooks',
    {
      input: 'src/styles',
      // 指定 scss 文件的 genCode
      genCode: (module) => `@import './${module}.scss';`
    }
  ],
  // 指定默认的 genCode
  genCode: (module) => `export * from './${module.replace('/index', '')}'`
})

清除入口文件

默认情况下支持空文件写入,若需在特定场景下清空入口文件可通过提供单独配置实现。

// gi.config.ts

// ...
// ri.config.ts
import { defineConfig } from '@rhao/gen-index'
import config from './gi.config'

export default defineConfig({
  // 若 config.dirs 中有特殊设置需覆盖
  ...config,
  allowEmpty: true, // 必须为 true
  exclude: '**/*' // 必须排除所有文件
})

可通过 npx gi -c ri.config 执行或设置 package.json 脚本。

{
  // ...

  "scripts": {
    // ...
    "gi": "gi",
    "ri": "gi -c ri.config"
  }
}