You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Prettier搭配prettier-plugin-apex格式化VF页面报错:js_source_text未定义

解决Prettier+prettier-plugin-apex格式化部分Visual Force页面报错js_source_text is not defined的问题

问题场景

在VS Code中使用Prettier配合prettier-plugin-apex格式化Salesforce文件时,多数Visual Force(.page)页面可正常格式化,但部分页面保存时触发报错:

[Error - 10:42:57 AM] Request textDocument/rangeFormatting failed.
  Message: Request textDocument/rangeFormatting failed with message: js_source_text is not defined
  Code: -32603 

可能原因

  1. 目标页面内JS代码存在语法异常:比如<script>标签内有未闭合的引号、括号,或语法错误,导致prettier-plugin-apex的JS解析模块无法正常识别内容,抛出未定义变量的错误。
  2. 插件解析逻辑兼容性问题:部分VF页面包含特殊JS写法(如过时语法、与VF标签混合的复杂嵌套),触发了prettier-plugin-apex的解析bug。
  3. 文件编码或隐藏字符问题:少数情况下,页面文件存在不可见特殊字符,干扰了解析器的内容读取。

解决方案

  • 排查并修复页面内JS代码:
    • 打开报错的.page文件,定位所有<script>标签,检查内部代码的语法完整性:闭合所有引号、括号,修正语法错误。
    • 确保<script>标签正确闭合,没有与VF标签(如<apex:xxx>)产生嵌套冲突。
  • 简化页面内JS逻辑:将页面内复杂的JS代码提取到Salesforce静态资源的独立.js文件中,通过<script src="{!URLFOR($Resource.YourJSFile)}"></script>引入,降低VF页面内的解析复杂度。
  • 更新插件版本:执行以下命令更新Prettier和prettier-plugin-apex到最新版本,修复已知解析bug:
    npm update prettier prettier-plugin-apex --save-dev
    
  • 临时调整Prettier配置:如果无法立即修复页面代码,可在项目根目录的.prettierrc中为.page文件指定HTML解析器,规避JS解析报错(注意:此方法可能会忽略VF特定语法的格式化):
    {
      "overrides": [
        {
          "files": "*.page",
          "options": {
            "parser": "html"
          }
        }
      ]
    }
    

内容的提问来源于stack exchange,提问作者cyberspy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 21:49:59