1

我的项目中有简单的 ejs 文件。该项目运作良好。

我想用 eslint 检查我的文件,使用 ejs pluging for eslint。

我有错误:error Parsing error: Unexpected token on my file的第一行。

我的 .eslintrc.json 文件:

{
    "parser": "babel-eslint",
    "plugins": [
        "mocha", 
        "markdown", 
        "json", 
        "ejs"
    ],
    "extends": "airbnb", 
    "rules": {
        "linebreak-style": ["off", "unix"],
        "semi": ["error", "never"]
    },
    "env": {
        "node": true,
        "mocha": true
    }
}

我的 package.json 文件:

{
  "name": "xxxxx",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "node ./bin/www",
    "test": "bash hooks/check.sh test",
    "linter-js": "bash hooks/check.sh linter-js",
    "linter-sh": "bash hooks/check.sh linter-sh",
    "linter-yml": "bash hooks/check.sh linter-yml",
    "coverage": "bash hooks/check.sh coverage",
    "TF": "bash hooks/check.sh TF"
  },
  "pre-commit": [
    "linter-js",
    "linter-sh",
    "linter-yml",
    "TF"
  ],
  "dependencies": {
    "babel-eslint": "^10.0.1",
    "chai": "^4.2.0",
    "cookie-parser": "~1.4.3",
    "debug": "~2.6.9",
    "ejs": "~2.5.7",
    "eslint-config-airbnb": "^17.1.0",
    "eslint-config-airbnb-base": "^13.1.0",
    "eslint-plugin-import": "^2.17.2",
    "eslint-plugin-jsx-a11y": "^6.2.1",
    "eslint-plugin-mocha": "^5.3.0",
    "eslint-plugin-react": "^7.13.0",
    "express": "~4.16.0",
    "fs": "0.0.1-security",
    "http-errors": "^1.6.3",
    "https": "^1.0.0",
    "mocha": "^6.1.4",
    "morgan": "~1.9.0",
    "pre-commit": "^1.2.2"
  },
  "devDependencies": {
    "eslint": "^5.16.0",
    "eslint-plugin-ejs": "0.0.2",
    "eslint-plugin-json": "^1.4.0",
    "eslint-plugin-markdown": "^1.0.0",
    "yaml-lint": "^1.2.4"
  }
}

我的 error.ejs 文件

<h1><%= message %></h1>
<h2><%= error.status %></h2>
<pre><%= error.stack %></pre>

当我运行 npx eslint views/error.ejs 时,我得到:

/Users/selim/Documents/Programmation/Univers/views/error.ejs
  1:6  error  Parsing error: Unexpected token

> 1 | <h1><%= message %></h1>
    |      ^
  2 | <h2><%= error.status %></h2>
  3 | <pre><%= error.stack %></pre>
  4 | 

✖ 1 problem (1 error, 0 warnings)

当我运行 npx eslint --debug views/error.ejs 时,我有更多信息:

  eslint:cli CLI args: [ '--debug', 'views/error.ejs' ] +0ms
  eslint:cli Running on files +4ms
  eslint:glob-utils Creating list of files to process. +0ms
  eslint:ignored-paths baseDir = "/Users/selim/Documents/Programmation/Univers" +0ms
  eslint:ignored-paths addPatternRelativeToCwd:
  eslint:ignored-paths   original = "/node_modules/*"
  eslint:ignored-paths   cooked   = "/node_modules/*" +1ms
  eslint:ignored-paths addPatternRelativeToCwd:
  eslint:ignored-paths   original = "/bower_components/*"
  eslint:ignored-paths   cooked   = "/bower_components/*" +0ms
  eslint:ignored-paths addPatternRelativeToCwd:
  eslint:ignored-paths   original = ".*"
  eslint:ignored-paths   cooked   = ".*" +1ms
  eslint:ignored-paths addPatternRelativeToCwd:
  eslint:ignored-paths   original = "!../"
  eslint:ignored-paths   cooked   = "!../" +0ms
  eslint:ignored-paths Looking for ignore file in /Users/selim/Documents/Programmation/Univers +0ms
  eslint:ignored-paths Could not find ignore file in cwd +0ms
  eslint:ignored-paths contains: +1ms
  eslint:ignored-paths   target = "/Users/selim/Documents/Programmation/Univers/views/error.ejs" +0ms
  eslint:ignored-paths   result = false +0ms
  eslint:ignored-paths contains: +1ms
  eslint:ignored-paths   target = "/Users/selim/Documents/Programmation/Univers/views/error.ejs" +0ms
  eslint:ignored-paths   result = false +0ms
  eslint:cli-engine Processing /Users/selim/Documents/Programmation/Univers/views/error.ejs +0ms
  eslint:cli-engine Linting /Users/selim/Documents/Programmation/Univers/views/error.ejs +1ms
  eslint:config Constructing config file hierarchy for /Users/selim/Documents/Programmation/Univers/views +0ms
  eslint:config Using .eslintrc and package.json files +0ms
  eslint:config Loading /Users/selim/Documents/Programmation/Univers/.eslintrc.json +1ms
  eslint:config-file Loading JSON config file: /Users/selim/Documents/Programmation/Univers/.eslintrc.json +0ms
  eslint:plugins Loaded plugin mocha (eslint-plugin-mocha@5.3.0) (from /Users/selim/Documents/Programmation/Univers/node_modules/eslint-plugin-mocha/index.js) +0ms
  eslint:plugins Loaded plugin markdown (eslint-plugin-markdown@1.0.0) (from /Users/selim/Documents/Programmation/Univers/node_modules/eslint-plugin-markdown/index.js) +32ms
  eslint:plugins Loaded plugin json (eslint-plugin-json@1.4.0) (from /Users/selim/Documents/Programmation/Univers/node_modules/eslint-plugin-json/lib/index.js) +25ms
  eslint:plugins Loaded plugin ejs (eslint-plugin-ejs@0.0.2) (from /Users/selim/Documents/Programmation/Univers/node_modules/eslint-plugin-ejs/lib/index.js) +1ms
  eslint:config-file Loading airbnb +164ms
  eslint:config-file Attempting to resolve eslint-config-airbnb +0ms
  eslint:config-file Loading JS config file: /Users/selim/Documents/Programmation/Univers/node_modules/eslint-config-airbnb/index.js +1ms
  eslint:config-file Loading /Users/selim/Documents/Programmation/Univers/node_modules/eslint-config-airbnb/rules/react-a11y.js +2ms
  eslint:config-file Loading JS config file: /Users/selim/Documents/Programmation/Univers/node_modules/eslint-config-airbnb/rules/react-a11y.js +0ms
  eslint:plugins Loaded plugin jsx-a11y (eslint-plugin-jsx-a11y@6.2.1) (from /Users/selim/Documents/Programmation/Univers/node_modules/eslint-plugin-jsx-a11y/lib/index.js) +148ms
  eslint:plugins Loaded plugin react (eslint-plugin-react@7.13.0) (from /Users/selim/Documents/Programmation/Univers/node_modules/eslint-plugin-react/index.js) +48ms
  eslint:config-file Loading /Users/selim/Documents/Programmation/Univers/node_modules/eslint-config-airbnb/rules/react.js +199ms
  eslint:config-file Loading JS config file: /Users/selim/Documents/Programmation/Univers/node_modules/eslint-config-airbnb/rules/react.js +0ms
  eslint:config-file Loading /Users/selim/Documents/Programmation/Univers/node_modules/eslint-config-airbnb-base/rules/strict.js +39ms
  eslint:config-file Loading JS config file: /Users/selim/Documents/Programmation/Univers/node_modules/eslint-config-airbnb-base/rules/strict.js +0ms
  eslint:config-file Loading /Users/selim/Documents/Programmation/Univers/node_modules/eslint-config-airbnb-base/index.js +1ms
  eslint:config-file Loading JS config file: /Users/selim/Documents/Programmation/Univers/node_modules/eslint-config-airbnb-base/index.js +0ms
  eslint:config-file Loading /Users/selim/Documents/Programmation/Univers/node_modules/eslint-config-airbnb-base/rules/imports.js +1ms
  eslint:config-file Loading JS config file: /Users/selim/Documents/Programmation/Univers/node_modules/eslint-config-airbnb-base/rules/imports.js +0ms
  eslint:plugins Loaded plugin import (eslint-plugin-import@2.17.2) (from /Users/selim/Documents/Programmation/Univers/node_modules/eslint-plugin-import/lib/index.js) +138ms
  eslint:config-file Loading /Users/selim/Documents/Programmation/Univers/node_modules/eslint-config-airbnb-base/rules/es6.js +86ms
  eslint:config-file Loading JS config file: /Users/selim/Documents/Programmation/Univers/node_modules/eslint-config-airbnb-base/rules/es6.js +1ms
  eslint:config-file Loading /Users/selim/Documents/Programmation/Univers/node_modules/eslint-config-airbnb-base/rules/variables.js +14ms
  eslint:config-file Loading JS config file: /Users/selim/Documents/Programmation/Univers/node_modules/eslint-config-airbnb-base/rules/variables.js +0ms
  eslint:config-file Loading /Users/selim/Documents/Programmation/Univers/node_modules/eslint-config-airbnb-base/rules/style.js +7ms
  eslint:config-file Loading JS config file: /Users/selim/Documents/Programmation/Univers/node_modules/eslint-config-airbnb-base/rules/style.js +0ms
  eslint:config-file Loading /Users/selim/Documents/Programmation/Univers/node_modules/eslint-config-airbnb-base/rules/node.js +99ms
  eslint:config-file Loading JS config file: /Users/selim/Documents/Programmation/Univers/node_modules/eslint-config-airbnb-base/rules/node.js +0ms
  eslint:config-file Loading /Users/selim/Documents/Programmation/Univers/node_modules/eslint-config-airbnb-base/rules/errors.js +1ms
  eslint:config-file Loading JS config file: /Users/selim/Documents/Programmation/Univers/node_modules/eslint-config-airbnb-base/rules/errors.js +0ms
  eslint:config-file Loading /Users/selim/Documents/Programmation/Univers/node_modules/eslint-config-airbnb-base/rules/best-practices.js +6ms
  eslint:config-file Loading JS config file: /Users/selim/Documents/Programmation/Univers/node_modules/eslint-config-airbnb-base/rules/best-practices.js +0ms
  eslint:config Using /Users/selim/Documents/Programmation/Univers/.eslintrc.json +638ms
  eslint:config-ops Using config from partial cache +0ms
  eslint:config-ops Apply environment settings to config +1ms
  eslint:config-ops Creating config for environment node +0ms
  eslint:config-ops Creating config for environment es6 +0ms
  eslint:config-ops Creating config for environment mocha +0ms
  eslint:linter Linting code for /Users/selim/Documents/Programmation/Univers/views/error.ejs (pass 1) +0ms
  eslint:linter Generating fixed text for /Users/selim/Documents/Programmation/Univers/views/error.ejs (pass 1) +113ms
  eslint:source-code-fixer Applying fixes +0ms
  eslint:source-code-fixer shouldFix parameter was false, not attempting fixes +0ms
  eslint:cli-engine Linting complete in: 763ms +757ms

/Users/selim/Documents/Programmation/Univers/views/error.ejs
  1:6  error  Parsing error: Unexpected token

> 1 | <h1><%= message %></h1>
    |      ^
  2 | <h2><%= error.status %></h2>
  3 | <pre><%= error.stack %></pre>
  4 | 

✖ 1 problem (1 error, 0 warnings)

我想知道为什么我有这个错误。我的代码似乎是正确的。

4

0 回答 0