eslint应该列在项目的依赖项中,而不是devDependencies

Pos*_*Guy 41 javascript tdd mocha.js node.js enzyme

要么我不明白,dependenciesdevDependencies在节点还没有100%或eslint只是错在这里(不能够正确地分析这个的):

   3:1   error  'chai' should be listed in the project's dependencies, not devDependencies              import/no-extraneous-dependencies
   4:1   error  'chai-enzyme' should be listed in the project's dependencies, not devDependencies       import/no-extraneous-dependencies
   5:1   error  'enzyme' should be listed in the project's dependencies, not devDependencies            import/no-extraneous-dependencies
   7:1   error  'sinon' should be listed in the project's dependencies, not devDependencies             import/no-extraneous-dependencies
   9:1   error  'redux-mock-store' should be listed in the project's dependencies, not devDependencies  import/no-extraneous-dependencies
Run Code Online (Sandbox Code Playgroud)

这些是测试依赖项,为什么说它们应该被列入dependencies

附加说明:我们使用Travis作为我们的CI,所以我不知道它是否会对此产生影响.

Pos*_*Guy 57

通过将此添加到我的解决方案.eslintrc:

"import/no-extraneous-dependencies": ["error", {"devDependencies": true}]

[no-extraneous-dependencies]添加异常?#422

根据此用户的回复:

您可以在测试文件夹中的.eslintrc中设置选项devDependencies:true:

规则:import/no-extraneous-dependencies:[error,{devDependencies:true}]然后,您将获得所引用的任何未包含依赖项或devDependencies的包的报告.然后你得到了规则的优点,没有来自禁用评论的噪音.

我想这可能对你有用吗?在您的情况下,这就是我将使用该规则的方式,因为您将测试代码分成了一个测试目录.

这篇文章也有助于确认我不想在我的依赖列表中不想要其中的一些:Sharable ESLint Config

  • 确保使用 CTRL-C 和 `npm start` 重新启动你的 node.js 服务器以使其流行起来 (2认同)
  • 如果您只想对某些文件(即测试)禁用 lint,请查看我的回答。 (2认同)
  • 在非开发模式下运行时,这可能会导致缺少依赖项。我认为@magic_al 答案是更好的选择。 (2认同)
  • @magic_al 的答案更好,因为它将 eslint 配置保留在一个地方 - 更容易理解和维护。 (2认同)

mag*_*_al 19

如果你想允许进口devDependencies测试文件只有您可以使用array of globs,作为文档no-extraneous-dependencies状态:

当使用数组数组时,如果要插入的文件名与数组中的单个数组匹配,则该设置将设置为true(没有错误报告),否则为false。

以下设置将仅对测试文件禁用皮棉。

"import/no-extraneous-dependencies": ["error", {"devDependencies": ["**/*.test.ts", "**/*.test.tsx"]}]
Run Code Online (Sandbox Code Playgroud)

这样,从导入devDependencies仍然被报告为错误。


Raj*_*sit 6

我通过使用修复了它

 'import/no-extraneous-dependencies': [
      'error',
      {
        projectDependencies: false,
      },
    ],
Run Code Online (Sandbox Code Playgroud)