pub-dir-replace
v1.0.6
Published
CLI:将 build/dist 目录内容覆盖同步到目标目录,支持多项目路径配置
Maintainers
Readme
pub-dir-replace
将 A 目录(build/dist) 的内容覆盖同步到 B 目录 的 CLI 工具,支持多组路径配置。
给安装依赖的人(npm 用户)
npm install -g pub-dir-replace
# 或项目内:npm install -D pub-dir-replace && npx pub ...
pub init # 交互选择配置文件路径(可填 D:\xxx\pub.json),已有则沿用
pub init -c D:/tools/pub-config.json # 非交互指定路径
pub add # 交互添加:源目录、目标目录、环境等
pub search # 确认配置
pub rep dev # 按环境选择后替换
pub rpj my-app-dev # 或按配置 id 直接替换配置写在你本机,不会写在 npm 包目录里:
| 优先级 | 说明 |
|--------|------|
| 1 | 环境变量 PUB_CONFIG(配置文件绝对路径) |
| 2 | 当前目录 .pubrc.json(项目级) |
| 3 | 用户目录 ~/.pub-dir-replace/settings.json(只存配置文件路径,任意目录可用 pub) |
| 4 | ~/.pub-cli/settings.json(默认方式,配置可在 D 盘等) |
| 5 | 默认 ~/.pub-cli/config.json |
pub init -c D:/xxx/pub-config.json 或 pub setpath D:/xxx/pub-config.json:配置在 用户目录 .pub-cli 之外 时,会写入 ~/.pub-dir-replace/settings.json,并默认清理 ~/.pub-cli。不再生成 D 盘侧的 .pub-settings.json(若存在会在 setpath 时删除)。保留 C 盘旧登记加 --no-clean-home。
pub init:文件已存在则不覆盖;再次 init 若已登记且文件在,直接提示沿用。
字段说明见 pathInfo.example.json(仅作格式参考,不会自动写入你的配置)。
给维护者(本仓库 vs 旧目录)
| 目录 | 用途 |
|------|------|
| testGlobal / main | 你原来的本地脚本(pathInfo.json 在包内),保持不动、继续 npm link 用这套即可 |
| testGlobal优化 / main-optimize-branch | 可发 npm 的版本,配置外置,不要在这里 npm link,除非你打算切换全局 pub |
两套目录互不影响;唯一会「抢」全局命令的是:后执行 npm link 的那个目录。
安装方式
npm install -g pub-dir-replacenpm install -D pub-dir-replace
npx pub --help常用命令
| 命令 | 别名 | 说明 |
|------|------|------|
| pub init [file] | | 初始化;-c 指定路径;已有文件不覆盖 |
| pub showConfigPath | pub where | 查看当前生效的配置文件路径 |
| pub setConfigPath [path] | pub setpath | 改登记路径,整文件搬到新路径并删旧文件;自定义路径默认清理 C 盘 ~/.pub-cli |
| pub cleanHomeRegistry | pub cleanhome | 配置已在自定义路径时,手动清理 C 盘 ~/.pub-cli 登记 |
| pub replace <env> | pub rep | 按环境选项目后替换 |
| pub replaceByProject [id] | pub rpj | 按 id 替换,省略 id 则交互选择 |
| pub addConfig | pub add | 新增一条配置 |
| pub searchConfig | pub search | 查看全部配置 |
| pub editConfig | pub edit | 修改配置 |
| pub deleteConfig | pub delete | 删除配置 |
配置项
| 字段 | 含义 |
|------|------|
| id | 唯一标识 |
| source | 源目录 |
| dest | 目标目录 |
| remark | 描述 |
| env | 环境名,如 dev / prd |
在 package.json 中
{
"scripts": {
"replace:dev": "pub rep dev",
"replace:local": "pub rpj my-app-dev"
}
}发布 npm
详见 PUBLISH.md。
日常发布: 改 version → git tag v1.0.x → git push origin v1.0.x(需先在 GitHub 配置 NPM_TOKEN)。
维护者: JaneCjr · 文档更新: 2026-07-23
说明
- 替换:对源目录顶层每一项,删除目标同名路径后复制(无自动备份,请确认路径)。
- 包内
pathInfo.json已忽略,不会发布;仅本地旧习惯或导入用:pub init ./pathInfo.json。
