open-index/open-npm huggingface dataset:
npm package: @lucyjs/add-js-ext
Description: EMS 打包时增加后缀 .js
Author: qingyi
Latest version: 1.0.1

# @lucyjs/add-js-ext

一个用于在 ESM 项目打包后自动为 import 语句添加 .js 后缀的工具。

## 安装

```bash
npm install @lucyjs/add-js-ext --save-dev
```

## 使用方法

### 在 package.json 中作为构建脚本使用

```json
{
  "scripts": {
    "build": "tsc",
    "postbuild": "npx add-js-ext ./dist"
  }
}
```

### 直接在命令行使用

```bash
npx add-js-ext ./dist
```

### 全局安装使用

```bash
npm install -g @lucyjs/add-js-ext
add-js-ext ./dist
```

## 功能说明

- 自动扫描指定目录下的所有 JS 文件
- 为文件中的相对导入路径添加 .js 后缀
- 支持处理子目录
- 保留原有的文件内容和格式

## 参数

- `[目标目录]`: 可选，指定要处理的目录路径，默认为 ./dist

## 示例

处理前的文件内容：
```javascript
import { helper } from './utils/helper';
import { config } from '../config';
```

处理后的文件内容：
```javascript
import { helper } from './utils/helper.js';
import { config } from '../config.js';
```

## License

MIT
npm package: @lucyjs/decorator
Description: TypeScript装饰器工具库
Latest version: 1.0.3

# @lucyjs/decorator

TypeScript 装饰器工具库

## 安装

```bash
yarn add @lucyjs/decorator
```

## 使用方法

```typescript
import { decorator } from "@lucyjs/decorator";

// 使用示例将在后续添加
```

## 开发

```bash
# 安装依赖
yarn install

# 构建
yarn build

# 运行测试
yarn test

# 代码检查
yarn lint
```

## 许可证

MIT
npm package: @lucyjs/file-scanner
Description: 文件扫描工具
Author: qingyi
Latest version: 1.1.0

# @lucyjs/file-scanner

一个用于扫描文件系统的 TypeScript 工具库。

## 功能特点

- 支持递归扫描目录
- 可按文件扩展名过滤
- 支持忽略特定文件或目录
- 可选的模块自动导入功能
- 完整的 TypeScript 类型支持

## 安装

使用 npm:
```bash
npm install @lucyjs/file-scanner
```

使用 yarn:
```bash
yarn add @lucyjs/file-scanner
```

## 使用方法

```typescript
import { FileScanner } from '@lucyjs/file-scanner';

// 创建扫描器实例
const scanner = new FileScanner({
  dirPath: './src',           // 要扫描的目录路径
  recursive: true,            // 是否递归扫描子目录
  extensions: ['.ts', '.js'], // 要扫描的文件扩展名
  ignore: ['node_modules'],   // 要忽略的文件或目录
  autoImport: true           // 是否自动导入扫描到的模块
});

// 执行扫描
const results = await scanner.scan();

// 处理扫描结果
results.forEach(result => {
  console.log('文件路径:', result.path);
  console.log('文件名:', result.name);
  console.log('扩展名:', result.ext);
  if (result.module) {
    console.log('导入的模块:', result.module);
  }
});
```

## API 文档

### ScanOptions

扫描器配置选项接口：

| 参数 | 类型 | 必填 | 默认值 | 说明 |
|------|------|------|--------|------|
| dirPath | string | 是 | - | 要扫描的目录路径 |
| recursive | boolean | 否 | true | 是否递归扫描子目录 |
| extensions | string[] | 否 | [] | 要扫描的文件扩展名列表 |
| ignore | string[] | 否 | [] | 要忽略的文件或目录路径列表 |
| autoImport | boolean | 否 | true | 是否自动导入扫描到的模块 |

### ScanResult

扫描结果接口：

| 属性 | 类型 | 说明 |
|------|------|------|
| path | string | 文件的完整路径 |
| name | string | 文件名（不含扩展名）|
| ext | string | 文件扩展名 |
| module | any | 导入的模块（仅当 autoImport 为 true 时存在）|

### FileScanner 类

主要的扫描器类，提供以下方法：

#### constructor(options: ScanOptions)

创建扫描器实例。

#### async scan(): Promise<ScanResult[]>

执行扫描操作，返回扫描结果数组。

## 注意事项

1. 当使用 `autoImport` 功能时，请确保扫描的文件是可导入的模块格式。
2. 路径可以是相对路径或绝对路径，内部会自动转换为绝对路径。
3. 如果 `extensions` 数组为空，则会扫描所有文件。

## 许可证

MIT