全局替换前须排除node_modules和dist等目录,并用正则加字边界与转义点号精准匹配域名/IP,替换后需人工验证网络请求、静态资源及环境变量注入处。

全局替换前必须排除 node_modules 和 dist
直接在项目根目录执行全局替换,node_modules 和 dist 里的内容大概率会被误改,轻则插件失效,重则构建产物崩溃。VS Code 默认不会自动排除它们,必须手动配置。
- 打开
Ctrl + Shift + H(Windows/Linux)或Cmd + Shift + H(macOS)调出替换面板 - 在“排除文件”(Files to exclude)输入框中填入:
node_modules, dist, .git, build - 如果项目用到了 Docker 或 CI 配置,顺手加上:
.dockerignore, .gitlab-ci.yml, .github/ - 确认排除项生效:预览区不应出现任何
node_modules/下的路径
匹配域名要加字边界和转义点号
搜 api.example.com 却把 myapi.example.com 或 example.com.cn 一起替换了?这是没加字边界(\b)和未转义点号(.)导致的典型误匹配。
- 启用正则模式(点击搜索框旁的
.*图标) - 搜索内容写成:
\bapi\.example\.com\b——\.转义点号,\b确保前后是单词边界 - 如果想同时匹配带协议的写法,用:
\bhttps?:\/\/api\.example\.com\b - 替换时若需保留协议,可捕获:
(https?:\/\/)api\.example\.com→ 替换为$1api.newdomain.com
替换 IP 地址要限制数字范围防过匹配
搜 192.168.1.1 结果把 192.168.1.100、1192.168.1.1 甚至注释里的 192.168.1.1/24 全干掉了——IP 正则不设上限就等于开盲盒。
- 用这个更安全的模式匹配 IPv4:
\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b - 但实际操作中,建议先缩小范围:比如只在
config/和src/utils/下搜192\.168\.1\.1(点号转义 + 不加 \b),再人工核对上下文 - 避免匹配到十六进制数或端口号:检查预览结果里是否混有
0x192、:192、192:8080这类非目标内容
替换后必须验证三类关键位置
改完域名/IP 不等于万事大吉。很多问题不会报错,而是静默失效:API 404、WebSocket 断连、图片 404、环境变量拼接错误……这些得靠人工盯住几个关键位置。
-
网络请求发起处:检查
fetch、axios.create、new WebSocket的 base URL 是否被正确替换且无多余斜杠(如https://api.newdomain.com//v1) -
静态资源引用:HTML 中的
<img src="http://oldip/assets/logo.png">、CSS 中的background: url("http://oldip/img/bg.jpg") -
构建时注入值:
process.env.API_BASE_URL、VUE_APP_API_HOST这类环境变量通常不在源码里硬编码,别白忙活搜索
git status 确认工作区干净,替换后立刻 git diff 扫一眼变更范围,比事后调试强十倍。


















