在 vscode 和 command line 中配置 rubocop, eslint 等的帮助

我厌倦了提交无法通过 linting 测试的代码。有时,我可以将 rubocopyarn eslint(依此类推)命令从 GitHub 复制粘贴到我的终端中并使其正常工作,但现在也不起作用了。

我收到类似以下的错误:

 无法为文件推断出解析器:...

对于某些文件在某些条件下,vscode 会在保存时正确地重新格式化并告诉我存在语法错误,但现在也不起作用了。

你想做什么?

我想进行一次 Zoom(或其他)屏幕共享,让你指导我完成一些事情,以便:

  • vscode 在保存时运行所有应有的操作,并修复格式,或者告诉我哪里出错了。
  • 我可以从命令行运行 yarn eslint 以及 linting 测试中的任何其他内容。

你何时需要完成?

在我疯掉之前。

你能为这项任务提供多少美元预算?

我正在运行 Pop!Os,它本质上是 Ubuntu。

如果你很有把握能解决这个问题,我愿意支付你一小时的标准费率。如果你能在十分钟内完成,我很乐意支付一小时的费用。双赢。

2 个赞

Jay,

很令人沮丧,对吧?

我处理这类事情的方法是:

  • 检查一个流行插件的 CI 工作流
  • 查看插件根目录中的相关配置

你可以在这里看到我的 Chatbot 的代码检查测试:

我相信你可以从插件目录运行 eslint 和 prettier,但 rubocop 可以从 discourse 目录运行。

如果这解决了你的问题,请随时将其转换为一个 Dev 主题,不客气 :slight_smile:

1 个赞

我所做的就是从 GitHub - discourse/discourse-plugin-skeleton: Template for Discourse pluginsGitHub - discourse/discourse-theme-skeleton: Template for Discourse themes 盲目复制工作流程。(我确实需要为我的仪表板插件稍微调整一下插件,它依赖于 stripe 插件)。我相信,这足以进行代码检查。

但我想要的是在提交之前,让 vscode 进行代码检查。我过去曾成功地让它工作过,但现在它停止了,我感觉自己像一个 20 年前懂 Emacs 的人,可能会说一些类似“按 control-p,然后执行安装格式化工具的操作,然后编辑配置文件使其正常工作”之类的话,然后我就可以再次输入 control-S,让我的 handlebars、javascript 和其他任何东西都格式化得漂亮,并且还能找到我定义但从未使用的所有讨厌的变量等等。

越来越接近

好的,但我做了这个:

      npm install --global yarn
      yarn add prettier

现在我有了 discourse-prettier

#!/usr/bin/env bash
if [ -n "$(find assets -type f \( -name "*.scss" -or -name "*.js" -or -name "*.es6" -or -name "*.hbs" \) 2>/dev/null)" ]; then
  yarn prettier --write "assets/**/*.{scss,js,es6,hbs}"
fi
if [ -n "$(find admin/assets -type f \( -name "*.scss" -or -name "*.js" -or -name "*.es6" -or -name "*.hbs" \) 2>/dev/null)" ]; then
  yarn prettier --write "admin/assets/**/*.{scss,js,es6,hbs}"
fi
if [ 0 -lt $(find test -type f \( -name "*.js" -or -name "*.es6" \) 2> /dev/null | wc -l) ]; then
  yarn prettier --write "test/**/*.{js,es6}"
fi

if [ -n "$(find assets -type f \( -name "*.scss" -or -name "*.js" -or -name "*.es6" -or -name "*.hbs" \) 2>/dev/null)" ]; then
  yarn prettier --list-different "assets/**/*.{scss,js,es6,hbs}"
fi
if [ -n "$(find admin/assets -type f \( -name "*.scss" -or -name "*.js" -or -name "*.es6" -or -name "*.hbs" \) 2>/dev/null)" ]; then
  yarn prettier --list-different "admin/assets/**/*.{scss,js,es6,hbs}"
fi
if [ 0 -lt $(find test -type f \( -name "*.js" -or -name "*.es6" \) 2> /dev/null | wc -l) ]; then
  yarn prettier --list-different "test/**/*.{js,es6}"
fi

这解决了我的部分问题,所以至少我可以在命令行上运行 prettier。但我仍然愿意付费寻求帮助,让 vscode 为我代劳。当我保存时,它应该运行 eslint(或 rubop 或其他任何东西),然后修复它或告诉我它无法修复。我太老了,不认为我的编辑器应该编写我的代码,但又不是老到认为它不应该格式化代码。

以前有一个主题,有人建议了他们正在使用的 vscode 插件,这对我有些帮助,但现在我看不到了。

1 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.