auto-run-terminal
v1.0.2
Published
Mac终端/VS Code终端打开时自动执行指定脚本,安装即生效
Readme
auto-run-terminal
Mac终端/VS Code终端打开时自动执行指定脚本,安装即生效
这是一个为macOS用户设计的终端自动执行脚本工具,可以在打开终端或VS Code终端时自动检测并切换到项目指定的Node.js版本。
✨ 功能特性
- 自动Node.js版本切换:根据项目
package.json中的nodeVersion字段自动切换Node.js版本 - 多环境支持:支持系统终端、iTerm2、VS Code终端等多种终端环境
- 零配置使用:安装后自动配置,无需手动设置
- 智能检测:只在包含
package.json的目录中执行,避免不必要的操作 - 优雅降级:未安装nvm时提供友好提示,不影响正常使用
🚀 快速开始
安装
npm install -g auto-run-terminal或者作为项目依赖安装:
npm install auto-run-terminal使用
- 在项目根目录的
package.json中添加nodeVersion字段:
{
"name": "your-project",
"nodeVersion": "18",
// 其他配置...
}- 安装完成后,每次打开终端或VS Code终端时,脚本会自动执行
🔧 工作原理
该工具通过以下步骤实现自动执行:
- 安装阶段:
npm install时会触发postinstall脚本 - 配置阶段:自动修改用户
~/.zshrc文件,添加自动执行配置 - 执行阶段:每次打开终端时,自动检测当前目录是否有
package.json - 版本切换:读取
nodeVersion字段并使用nvm切换到指定版本
📁 项目结构
auto-run-terminal/
├── bin/
│ └── auto-config.js # 安装配置脚本
├── scripts/
│ ├── auto-switch-node.sh # Bash版本自动切换脚本
│ ├── my-auto-script.js # Node.js版本自动切换脚本
│ └── my-auto-script.sh # 备用Bash版本自动切换脚本
├── package.json # 项目配置
└── README.md # 项目文档📝 配置说明
package.json配置
在项目的package.json中添加nodeVersion字段:
{
"nodeVersion": "18"
}支持多种格式:
"18"- 使用Node.js 18.x版本"v16.20.0"- 使用指定版本"lts"- 使用LTS版本
环境要求
- macOS系统
- zsh shell(macOS默认)
- nvm(Node Version Manager)已安装
🔍 故障排除
nvm未安装
如果提示"未检测到 nvm",请按以下步骤安装:
# 使用curl安装
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
# 或使用wget安装
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
# 安装后重启终端或执行
source ~/.zshrc配置未生效
如果配置未生效,请尝试:
# 手动source配置文件
source ~/.zshrc
# 或重启终端应用程序VS Code终端不生效
确保VS Code使用的是系统默认的zsh shell:
- 打开VS Code设置
- 搜索
terminal.integrated.defaultProfile.osx - 设置为
zsh
🛠️ 开发指南
项目安装
git clone <repository-url>
cd auto-run-terminal
npm install本地测试
# 测试配置脚本
node bin/auto-config.js
# 测试自动切换脚本
./scripts/auto-switch-node.sh构建发布
# 发布到npm
npm publish🗑️ 卸载
推荐卸载方法
为了确保完全卸载,建议使用以下命令:
# 全局卸载
npm uninstall -g auto-run-terminal手动卸载
如果上述方法不生效,可以手动执行卸载脚本:
卸载脚本功能
卸载脚本会:
- 从
~/.zshrc中移除auto-run-terminal相关的所有配置 - 清理多余的空行,保持文件整洁
- 提示重启终端或执行
source ~/.zshrc使更改生效
验证卸载
卸载完成后,可以检查~/.zshrc文件中是否还存在以下内容:
# AUTO-RUN-TERMINAL-CONFIG (START DO NOT DELETE)# AUTO-RUN-TERMINAL-CONFIG (END DO NOT DELETE)source命令指向auto-run-terminal的脚本
如果这些内容已不存在,说明卸载成功。
