如何使用本地eslint插件来使用本地安装的eslint

gma*_*man 6 javascript node.js eslint

根据文档插件应该工作,如果他们是名为"eslint-plugin-"的npm模块

这是一个遵循该模式的插件.来源就在这里.

所以,我们制作了一个新项目

md foo
cd foo
npm init
... answer questions ..
npm install --save-dev eslint
npm install --save-dev eslint-plugin-require
echo "define(function(){});" > test.js
echo "{\"rules\":{\"require\": 2}}" > conf.json
node node_modules/eslint/bin/eslint.js -c conf.json --plugin eslint-plugin-require test.js
Run Code Online (Sandbox Code Playgroud)

产生

~/node_modules/eslint/lib/eslint.js:569
                throw new Error("Definition for rule '" + key + "' was not
                      ^
Error: Definition for rule 'require' was not found. 
Run Code Online (Sandbox Code Playgroud)

将配置更改为

echo "{\"rules\":{\"eslint-plugin-require\": 2}}" > conf.json
Run Code Online (Sandbox Code Playgroud)

也不

echo "{\"rules\":{\"require-define\": 2}}" > conf.json
Run Code Online (Sandbox Code Playgroud)

也不

echo "{\"rules\":{\"require-require-define\": 2}}" > conf.json
Run Code Online (Sandbox Code Playgroud)

也不

echo "{\"rules\":{\"eslint-plugin-require-define\": 2}}" > conf.json
Run Code Online (Sandbox Code Playgroud)

也不

echo "{\"rules\":{\"eslint-plugin-require-require-define\": 2}}" > conf.json
Run Code Online (Sandbox Code Playgroud)

不解决它

如何使用本地安装的eslint插件?

cvi*_*sco 6

在本地安装eslint时使用本地插件非常简单,但起初并没有立即发现。

1.安装

这里与您已经在做的没什么不同。

npm install --save-dev eslint
npm install --save-dev eslint-plugin-require
Run Code Online (Sandbox Code Playgroud)

2.配置

我使用的是.eslintrc文件,但如果要将自定义配置文件传递给CLI,则应遵循相同的原则。请注意,当它是插件时,规则的定义方式有所不同。

{
    "plugins": [
        // Tell eslint about the require plugin
        "require"
    ],
    "rules": {
        // Built-in Rules
        "camelcase": 2,
        "no-trailing-spaces": 2,

        // Require Plugin Rules (note plugin prefix)
        "require/require-define": 2,
        "require/require-array-syntax": 2,
        "require/require-module-prefix": 2
    }
}
Run Code Online (Sandbox Code Playgroud)

  • @Felix - 它将在您的 node_modules/.bin 文件夹中,因此运行 `./node_modules/.bin/eslint` 应该可以解决问题。 (4认同)