webstorm 文件头注释需在 file templates 中配置javascript模板并正确使用${user}、${year}-${month}-${day}、${name}等变量,扩展名必须为js,且模板须建在files而非includes或code下。

文件模板(File Templates)里填对变量才生效
WebStorm 的文件头注释不是靠“写个注释再复制”实现的,必须在 Editor → File and Code Templates → Files 里新建对应语言的模板,并正确使用内置变量。常见错误是把模板建在 Includes 或 Code 栏下——那只会用于代码片段插入,不会在新建文件时自动出现。
以 JavaScript 为例,操作路径是:设置 → Editor → File and Code Templates → Files → 点 + → 选 JavaScript File → 命名如 JS with Header → 扩展名必须填 js(否则右键新建时根本看不到这个模板)。
模板正文里要包含这些变量:
-
${USER}:自动替换为系统当前登录用户名(别手写成字符串,比如不要写"zhangsan") -
${DATE}:格式为系统默认日期(如2026/04/21),若需自定义格式(如yyyy-MM-dd),得改用${YEAR}-${MONTH}-${DAY} -
${NAME}:新建文件时输入的文件名(不含扩展名),可用于类名、组件名等
示例模板正文:
/**\n * @author: ${USER}\n * @date: ${YEAR}-${MONTH}-${DAY}\n * @file: ${NAME}.js\n */\n\n
Live Template 和 File Template 别混用
很多人搜“头部注释”就直接去配 Live Template(实时模板),结果发现 /// + Tab 只能在已有文件里插入,没法控制新建文件时的首行内容。这是两类机制:
-
File Templates控制「新建文件时整个文件的初始内容」,包括头部注释+骨架代码 -
Live Templates控制「在已打开文件中快捷插入一段代码片段」,比如输cmt+Tab插入注释块
如果你要的是每次新建 .js 文件就自带作者和日期,只配 Live Template 是没用的——必须走 File Templates 路径。Live Template 适合补全函数说明、组件 props 文档这类高频但非强制的场景。
模板不显示?先查扩展名和语言支持
右键新建时看不到你定义的模板,90% 是以下三个原因:
- 模板的
File extension和你右键选择的文件类型不一致(比如想建.ts文件,但模板扩展名写了js) - 项目没启用对应语言支持:Settings → Languages & Frameworks → JavaScript → 确认
JavaScript version已设为实际使用的版本(如ES2022),否则.ts或.jsx模板可能被忽略 - 模板名称含空格或特殊符号(如
JS Header v2),导致 WebStorm 在右键菜单中无法正常渲染,建议用下划线代替空格(JS_Header)
另外,WebStorm 不会自动识别 .vue 或 .tsx 文件的模板,除非你在 Files 列表里单独为它们新建模板,且扩展名分别设为 vue、tsx。
时间格式不能靠猜,得用 WebStorm 认的写法
WebStorm 的模板变量不支持 JS 的 new Date().toISOString(),也不接受 Java 风格的 SimpleDateFormat 写法。它只认自己定义的一套变量表达式:
-
${DATE}和${TIME}是最简用法,但格式固定(取决于系统区域设置) - 要精确控制格式,必须拆用:
${YEAR}、${MONTH}、${DAY}、${HOUR}、${MINUTE} -
$date$是 Live Template 专用变量,在 File Templates 里完全无效(很多人抄错地方,填了$date$却一直不显示时间)
比如你要 2026-04-21 08:25,就得写:${YEAR}-${MONTH}-${DAY} ${HOUR}:${MINUTE}。注意 ${HOUR} 是 24 小时制,不用额外处理。
最后提醒一句:File Templates 里的变量替换是一次性的,只在新建文件那一刻执行。后续修改文件不会自动更新 @date 或 @lastModified ——如果真需要动态更新,得上 File Watchers + 外部脚本,那已经超出模板能力范围了。











