Ctrl+Shift+C 复制的是绝对路径,如 E:\project\src\api\index.ts;右键 Copy Path → Relative path 才适用于 import,以项目根目录为起点;Module path 仅在 tsconfig 配置 baseUrl 时有效。

Ctrl+Shift+C 复制的是绝对路径,不是相对路径
这个快捷键直接读取文件在磁盘上的真实位置,比如 E:\project\src\api\index.ts 或 /Users/me/project/src/utils/logger.js。它不依赖项目结构,也不计算相对关系,就是“从盘符或根目录开始”的完整路径。
常见错误现象:把复制出来的路径直接粘贴进 import 语句,结果 TypeScript 报 Cannot find module,ESLint 警告路径硬编码。
- 适合场景:发给运维查日志、填 CI 脚本里的资源路径、确认构建产物是否生成到
dist目录 - 不适合场景:写 import / require / dynamic import
- 注意:
\在 JS 字符串里是转义符,粘贴后必须手动改成/,否则"C:\src\utils"会崩
右键 Copy Path → Relative path 是写 import 的标准输入源
在 Project 面板中右键文件,选 Copy Path → Relative path,得到的是以项目根目录(Content Root)为起点的路径,例如 src/api/client.ts。它和 tsconfig.json 中配置的 "baseUrl" 或 Webpack 的 alias 完全对齐。
使用场景明确:你在 Vue/React 项目里写 import { foo } from '@/utils/helper',复制出来是 src/utils/helper.ts,只需把开头的 src/ 替换成 @/ 即可。
- 该路径不随当前编辑文件位置变化,只取决于 Content Root 设置
- 如果项目有多个 Content Root(比如多包 monorepo),需确认当前文件归属哪个根
- 和
Content Root Path功能一致,只是菜单名更直白,建议认准这个选项
想复制“相对于当前编辑文件”的路径?WebStorm 原生不支持
比如你在 src/views/Home.vue 里想引入 src/utils/request.ts,希望一键得到 ../utils/request.ts —— 这个需求 WebStorm 没有内置快捷键。
两个靠谱解法:
- 装
Path Copyer插件:安装后右键多出Copy Relative Path to Current File选项,点一下就完事 - 手动计算:靠经验或路径推算,但容易出错,尤其嵌套深时
别指望 Ctrl+Shift+C 或右键其他选项能实现这个功能——它们都不感知当前编辑器打开的是哪个文件。
Module path 只在启用 TypeScript baseUrl 时有效
Copy Path → Module path 这个选项不是通用功能,它只在项目启用 TypeScript 模块解析且配置了 "baseUrl" 时才起作用。比如 baseUrl: "src",那它就会自动去掉前缀,只输出 api/client.ts。
常见误用:没配 baseUrl 却选了这个,结果复制出来还是完整路径,或者报空值。
- 判断依据:打开
tsconfig.json,看有没有"compilerOptions": { "baseUrl": "..." } - 没配就别选,选了也白选
- 即使配了,也要注意路径是否符合你实际的 alias 规则(比如
@/*和~/*不互通)


















