我在节点上使用EJS作为我的视图引擎并表达设置。我想使用ejs-lint帮助获取错误行。我之前没有使用过linter,但是通过阅读这里的文档:https://github.com/RyanZim/EJS-Lint我假设您可以在命令行中检查指定文件上的错误,如下所示:ejslint
我的假设是正确的,我做错了什么?我已经使用npm install ejs-lint --save-dev
安装了
另外,如果我计划将ESlint添加到我的项目中,我猜我可以将它与EJSlint一起使用吗?
直接从终端运行:
./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分析的内容,反之亦然。安装两者都不会导致任何问题。
对于我测试的内容,您必须在每个文件中使用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']);
实际上,以下方式是最简单且最快的执行时间。它还具有更好的错误日志记录,因为它不通过find命令。
ejslint $(find ./ -type f -iname '*.ejs')