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

格式化选中代码时APP_URL相关代码报错的问题求助

问题重现

我在格式化以下Blade模板中的JS代码时,每次执行Format Selection操作,都会在const APP_URL = {!!json_encode(url('/')) !!}这行报错:

@push('scripts')
<script>
    const csrfToken = $('meta[name="csrf-token"]').attr('content')
    const APP_URL = {!!json_encode(url('/')) !!}

    $("#chTahun").on('change', function() {
        const th = $(this).val()
        getChart(th)
    })

    getChart()
    ...
    ...
</script>
@endpush
问题原因

这行是Blade模板语法和原生JS的混合写法,{!! ... !!}是Laravel Blade的非转义输出标记,不属于标准JavaScript语法。大多数代码格式化工具(比如VS Code内置格式化、Prettier)会把这段代码当成纯JS解析,无法识别Blade的模板语法,因此触发解析错误。

解决办法

1. 改用JS兼容的Blade输出写法

如果网站URL没有特殊字符,直接用标准Blade字符串输出,让格式化工具正常识别:

const APP_URL = "{{ url('/') }}";

如果需要保留非转义输出(比如URL含特殊字符),用反引号包裹Blade语法,让工具把它当成字符串的一部分:

const APP_URL = `{!! json_encode(url('/')) !!}`;

2. 让格式化工具忽略该行

给这行加上对应工具的忽略注释,比如用Prettier就加// prettier-ignore:

// prettier-ignore
const APP_URL = {!!json_encode(url('/')) !!}

不同工具的忽略注释略有差异,比如ESLint用// eslint-disable-next-line,根据你使用的工具调整即可。

3. 临时注释应急

格式化前先把这行注释掉,完成格式化后再取消注释,手动调整格式:

// const APP_URL = {!!json_encode(url('/')) !!}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 17:15:38