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 回复
复现问题了吗 需要详细代码配置吗

