uni-app eslint-js 插件误报错

uni-app eslint-js 插件误报错

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

示例代码:

eslint-js extension.js文件部分代码

var report = cli.executeOnText(text, doc.fileName)  
// 修改为下面代码eslint处理正确  
// var report = cli.executeOnText(text, path.relative(doc.workspaceFolder.uri.path,doc.uri.path))  
let errorMsgs = [];  
if (report && report.results && Array.isArray(report.results) && report.results.length == 1) {  
  let result = report.results[0];  
  let messages = result.messages;  
  if (messages && messages.length > 0) {  
    for (let j = 0; j < messages.length; j++) {  
      let errorMsg = messages[j];  
      if (errorMsg.severity == 2) {  
        errorMsgs.push({  
          column: errorMsg.column - 1,  
          line: errorMsg.line - 1,  
          message: errorMsg.message  
        });  
      }  
    }  
  }  
  let diagCollection = hx.languages.createDiagnosticCollection(pluginName);  
  diagCollection.set(doc.uri, errorMsgs);  
  //自动修复  
  if (result.output !== undefined) {  
    const diffs = diff.stringDiff(text, result.output, false);  
    let workspaceEdit = new WorkspaceEdit();  
    let edits = [];  
    for (let df of diffs) {  
      edits.push(new TextEdit({  
        start: df.originalStart,  
        end: df.originalStart + df.originalLength  
      }, result.output.substr(df.modifiedStart, df.modifiedLength)));  
    }  
    workspaceEdit.set(doc.uri, edits);  
    hx.workspace.applyEdit(workspaceEdit);  
  }  
}  
console.log(report, errorMsgs)  
// 打印出结果 filePath: 'c:\\Users\\feath\\Desktop\\test\\uni-app-cli\\main.js' 错误  
// 实际路径应为filePath: 'c:\\Users\\feath\\Desktop\\test\\uni-app-cli\\src\\main.js'

操作步骤:

  • 使用vue-cli项目添加import规则检测import路径

预期结果:

  • 检测无错误

实际结果:

  • 报错

bug描述:

我遇到这个问题 https://ask.dcloud.net.cn/question/124768 然后看了一下eslint-js插件源码 发现源码

cli.executeOnText(text, doc.fileName)

这个地方文件只有文件名 导致eslint返回结果的路径和实际路径不一致 导致误报错 应该基于项目路径

cli.executeOnText(text, path.relative(doc.workspaceFolder.uri.path,doc.uri.path))

更多关于uni-app eslint-js 插件误报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

感谢反馈,我们验证一下

更多关于uni-app eslint-js 插件误报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html


复现问题了吗 需要详细代码配置吗

回到顶部