要么我不理解节点100%中的dependencies
与devDependencies
,要么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
这些是测试依赖项,为什么说它们应该列在dependencies
中呢?
补充说明:我们使用Travis作为我们的CI,所以我根本不知道它是否会对此产生影响。
答案 0 :(得分:44)
将此添加到我的.eslintrc
:
"import/no-extraneous-dependencies": ["error", {"devDependencies": true}]
[no-extraneous-dependencies] Add exceptions? #422
根据此用户的回复:
你可以在你的.eslintrc中设置选项devDependencies:true 测试文件夹:
规则:import / no-extraneous-dependencies:[error,{devDependencies: true}]然后你会得到任何被引用的软件包的报告 不包含依赖项或devDependencies。 然后你得到了 规则的优点,没有来自禁用评论的噪音。
我认为这对你有用吗?这是我将如何使用该规则 你的情况,因为你把你的测试代码分成了一个测试 。目录
这篇文章也有助于确认我并非疯狂,不想在我的依赖列表中找到其中的一些:Sharable ESLint Config
答案 1 :(得分:2)
如果您只想允许在{strong>测试文件中导入devDependencies
,则可以使用array of globs
,因为no-extraneous-dependencies
的{{3}} :
使用数组数组时,如果要插入的文件名与数组中的单个数组匹配,则设置将设置为true(没有错误报告),否则为false。
以下设置将仅对测试文件禁用皮棉。
"import/no-extraneous-dependencies": ["error", {"devDependencies": ["**/*.test.ts", "**/*.test.tsx"]}]
这样,从devDependencies
的导入仍然会报告为错误。