uni-app 多行字符串报错

uni-app 多行字符串报错

开发环境 版本号 项目创建方式
HbuilderX 3.1.6 -

操作步骤:

直接报错[eslint-vue]Parsing error: Unterminated template

预期结果:

正常编译

实际结果:

编译失败

bug描述:

<template>  
    <view class=""></view>  
</template>  
<script>  
    var s = `<script></script>`;  
</script>

更多关于uni-app 多行字符串报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app 多行字符串报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个常见的模板字符串解析错误。问题出现在JavaScript代码中使用了包含</script>的模板字符串,这会被Vue模板编译器误认为是script标签的结束标记。

解决方案:

  1. 转义处理:将模板字符串中的</script>拆分为字符串连接
var s = `<` + `script><` + `/script>`;
  1. 使用Base64编码(适用于较长的多行字符串):
var s = atob('PHNjcmlwdD48L3NjcmlwdD4='); // 解码后为<script></script>
  1. 将内容移至外部文件:如果是较长的多行内容,建议将其放在单独的.js文件中导入

  2. 修改ESLint配置(临时方案):在vue.config.js中禁用相关规则

module.exports = {
  lintOnSave: false
}
回到顶部