如何在cli中使用ejs lint

问题描述 投票:2回答:2

我在节点上使用EJS作为我的视图引擎并表达设置。我想使用ejs-lint帮助获取错误行。我之前没有使用过linter,但是通过阅读这里的文档:https://github.com/RyanZim/EJS-Lint我假设您可以在命令行中检查指定文件上的错误,如下所示:ejslint

我的假设是正确的,我做错了什么?我已经使用npm install ejs-lint --save-dev安装了

另外,如果我计划将ESlint添加到我的项目中,我猜我可以将它与EJSlint一起使用吗?

ejs eslint
2个回答
3
投票

Short answer

直接从终端运行:

./node_modules/.bin/ejslint src/templates/some-template.ejs

或者与npm script

// package.json
{
  ...
  "scripts": {
    "lint:ejs": "ejslint src/templates/some-template.ejs"
  }
}

// terminal
npm run lint:ejs

ESLint和EJSlint是不同的独家流程。 EJLint不应分析ESLint分析的内容,反之亦然。安装两者都不会导致任何问题。

Extended answer

对于我测试的内容,您必须在每个文件中使用ejs linter CLI。这不如eslint有用,它可以处理多个文件,排除等。

如果您有一些src/templates目录,您可以通过执行以下操作来lint所有EJS文件:

find src/templates -type f -iname '*.ejs' -exec bash -c "./node_modules/.bin/ejslint '{}'" \;

哪个适用于Unix但不适用于Windows。您可以使用ejslint API准备一些节点脚本来跨系统。

它还有一个grunt plugin

如果你想同时拥有ESLint和EJSLint,你应该有不同的npm脚本,例如:

// package.json
{
  ...
  "scripts": {
    "lint": "npm run lint:js && npm run lint:ejs",
    "lint:js": "eslint src --ignore-path src/templates",
    "lint:ejs": "find src/templates -type f -iname '*.ejs' -exec bash -c \"./node_modules/.bin/ejslint '{}'\" \\;"
  }
}

如果你正在使用grunt,你可以为eslint和ejslint创建不同的任务,然后create a group task

grunt.registerTask('lint', ['eslint', 'ejslint']);

1
投票

实际上,以下方式是最简单且最快的执行时间。它还具有更好的错误日志记录,因为它不通过find命令。

ejslint $(find ./ -type f -iname '*.ejs')
© www.soinside.com 2019 - 2024. All rights reserved.