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

2022-08-30 04:41:34

要么我不明白vs。 在节点100%中,或者eslint在这里是错误的(无法正确分析):dependenciesdevDependencies

   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

这些是测试依赖项,那么为什么说它们应该列在?dependencies

补充说明:我们使用Travis作为我们的CI,所以我不知道它是否对此有任何影响。


答案 1

通过将其添加到我的:.eslintrc

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

[无无关依赖关系]添加例外?#422

根据此用户的回复

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

rules: import/no-extraneous-dependencies: [error, { devDependencies: true }] 然后,你将获得引用的任何未包含依赖项或 devDependencies 的包的报告。然后,您将获得规则的优点,而不会受到禁用注释的干扰

我想这可能对你有用吗?在你的例子中,这就是我使用规则的方式,因为你已经将测试代码分离到一个测试目录中。

此外,这篇文章也有助于确认我并不是疯了,不希望其中一些在我的依赖项列表中可共享的ESLint配置


答案 2

如果只想允许在测试文件中导入,则可以使用 ,作为以下状态的文档devDependenciesarray of globsno-extraneous-dependencies

使用 glob 数组时,如果正在 linded 的文件的名称与数组中的单个 glob 匹配,则该设置将设置为 true(不报告错误),否则设置为 false。

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

"import/no-extraneous-dependencies": ["error", {"devDependencies": ["**/*.test.ts", "**/*.test.tsx"]}]

这样,从 中导入仍会报告为错误。devDependencies