@new1333/noscript
v0.0.1
Published
将 scripts 目录下的 JS/TS 文件注册为可执行命令
Downloads
9
Maintainers
Readme
noscript
将 scripts 目录下的 JS/TS 文件自动注册为可执行命令。
特性
- ✅ 支持 JavaScript 和 TypeScript 文件
- ✅ 自动处理相对导入和第三方包
- ✅ 零配置,开箱即用
- ✅ 无需手动编译 TypeScript
安装
npm install -g noscript
# 或
pnpm add -g noscript使用方法
1. 创建脚本文件
在项目中创建 scripts 目录,添加你的脚本文件:
// scripts/hello.ts
export default () => {
console.log("Hello, World!");
};// scripts/greet.ts
import chalk from "chalk";
export default async () => {
console.log(chalk.blue("Hello from TypeScript!"));
};2. 生成可执行命令
import { NoScript } from "noscript";
import path from "path";
const noscript = new NoScript();
await noscript.addScriptDir(path.resolve("./scripts"));
await noscript.createExecutables();3. 运行命令
生成的命令会在 ./bin 目录中:
./bin/hello
./bin/greetAPI
NoScript
主类,用于管理脚本和生成可执行文件。
addScriptDir(dirPath: string): Promise<void>
添加脚本目录。
getAllScriptPaths(): Promise<Set<string>>
获取所有脚本文件路径。
createExecutables(): Promise<void>
为所有脚本创建可执行文件。
createExecutable(scriptPath: string): Promise<void>
为指定脚本创建可执行文件。
脚本规范
所有脚本必须 export default 一个函数:
// ✅ 正确
export default () => {
console.log("This works!");
};
// ✅ 也可以是异步函数
export default async () => {
await someAsyncOperation();
};
// ❌ 错误 - 没有导出函数
console.log("This won't work");工作原理
- noscript 扫描指定目录中的
.js和.ts文件 - 为每个脚本生成一个可执行文件到
bin目录 - 可执行文件使用 jiti 在运行时编译 TypeScript
- 自动处理相对导入和 node_modules 中的包
License
MIT
