module.exports 上的 eslint 关键字错误
eslint keyword errors on module.exports
我的 jest.config.js 文件从 eslint CI 收到以下奇怪错误。
1:1 error Rule 'no-empty-label' was removed and replaced by: no-labels no-empty-label
1:1 error Rule 'no-reserved-keys' was removed and replaced by: quote-props no-reserved-keys
1:1 error Rule 'space-after-keywords' was removed and replaced by: keyword-spacing space-after-keywords
1:1 error Rule 'space-return-throw-case' was removed and replaced by: keyword-spacing space-return-throw-case
他们似乎在抱怨一些 js 关键字,虽然我看不到。这是完整的 jest.config.js 文件:
/* global module */
module.exports = {
roots: [
'<rootDir>/src'
],
collectCoverageFrom: [
'src/**/*.{js,jsx,ts,tsx}',
'!src/**/*.d.ts'
],
setupFiles: [
'react-app-polyfill/jsdom'
],
setupFilesAfterEnv: [
'<rootDir>/src/setupTests.js'
],
testMatch: [
'<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}',
'<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}'
],
testEnvironment: 'jest-environment-jsdom-fourteen',
testPathIgnorePatterns: [
'<rootDir>/src/__tests__/specHelpers/',
'<rootDir>/src/__tests__/mocks/'
],
transform: {
'^.+\.(js|jsx|ts|tsx)$': 'babel-jest',
'^.+\.css$': '<rootDir>/config/jest/cssTransform.js',
'^(?!.*\.(js|jsx|ts|tsx|css|json)$)': '<rootDir>/config/jest/fileTransform.js'
},
transformIgnorePatterns: [
'[/\\]node_modules[/\\].+\.(js|jsx|ts|tsx)$',
'^.+\.module\.(css|sass|scss)$'
],
modulePaths: [
'<rootDir>/src'
],
moduleNameMapper: {
'^.+\.module\.(css|sass|scss)$': 'identity-obj-proxy'
},
moduleFileExtensions: [
'web.js',
'js',
'web.ts',
'ts',
'web.tsx',
'tsx',
'json',
'web.jsx',
'jsx',
'node'
],
watchPlugins: [
'jest-watch-typeahead/filename',
'jest-watch-typeahead/testname'
]
};
有人看到 eslint 在抱怨什么吗?
ESLint 将配置错误报告为应用它的第一行文件的问题。正如@sleepwalker 提到的,它应该与您的 eslint 配置有关(例如 .eslingrc
)。
正在查找第一个失败的规则:no-empty-label
。
它有以下警告:
This rule was removed in ESLint v2.0 and replaced by the no-labels rule.
因此您可能需要遵循错误建议,并对您的 ESLint 配置进行修改。
示例:
- "no-empty-label": "error"
+ "no-labels": "error"
或者如果您想要完全相同的行为(意味着您在特定情况下确实需要标签):
- "no-empty-label": "error"
+ "no-labels": ["error", { "allowLoop": true, "allowSwitch": true }]
这些规则也可能来自您正在扩展的配置,因此您可能需要考虑删除、覆盖或更新该配置。
我的 jest.config.js 文件从 eslint CI 收到以下奇怪错误。
1:1 error Rule 'no-empty-label' was removed and replaced by: no-labels no-empty-label
1:1 error Rule 'no-reserved-keys' was removed and replaced by: quote-props no-reserved-keys
1:1 error Rule 'space-after-keywords' was removed and replaced by: keyword-spacing space-after-keywords
1:1 error Rule 'space-return-throw-case' was removed and replaced by: keyword-spacing space-return-throw-case
他们似乎在抱怨一些 js 关键字,虽然我看不到。这是完整的 jest.config.js 文件:
/* global module */
module.exports = {
roots: [
'<rootDir>/src'
],
collectCoverageFrom: [
'src/**/*.{js,jsx,ts,tsx}',
'!src/**/*.d.ts'
],
setupFiles: [
'react-app-polyfill/jsdom'
],
setupFilesAfterEnv: [
'<rootDir>/src/setupTests.js'
],
testMatch: [
'<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}',
'<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}'
],
testEnvironment: 'jest-environment-jsdom-fourteen',
testPathIgnorePatterns: [
'<rootDir>/src/__tests__/specHelpers/',
'<rootDir>/src/__tests__/mocks/'
],
transform: {
'^.+\.(js|jsx|ts|tsx)$': 'babel-jest',
'^.+\.css$': '<rootDir>/config/jest/cssTransform.js',
'^(?!.*\.(js|jsx|ts|tsx|css|json)$)': '<rootDir>/config/jest/fileTransform.js'
},
transformIgnorePatterns: [
'[/\\]node_modules[/\\].+\.(js|jsx|ts|tsx)$',
'^.+\.module\.(css|sass|scss)$'
],
modulePaths: [
'<rootDir>/src'
],
moduleNameMapper: {
'^.+\.module\.(css|sass|scss)$': 'identity-obj-proxy'
},
moduleFileExtensions: [
'web.js',
'js',
'web.ts',
'ts',
'web.tsx',
'tsx',
'json',
'web.jsx',
'jsx',
'node'
],
watchPlugins: [
'jest-watch-typeahead/filename',
'jest-watch-typeahead/testname'
]
};
有人看到 eslint 在抱怨什么吗?
ESLint 将配置错误报告为应用它的第一行文件的问题。正如@sleepwalker 提到的,它应该与您的 eslint 配置有关(例如 .eslingrc
)。
正在查找第一个失败的规则:no-empty-label
。
它有以下警告:
This rule was removed in ESLint v2.0 and replaced by the no-labels rule.
因此您可能需要遵循错误建议,并对您的 ESLint 配置进行修改。
示例:
- "no-empty-label": "error"
+ "no-labels": "error"
或者如果您想要完全相同的行为(意味着您在特定情况下确实需要标签):
- "no-empty-label": "error"
+ "no-labels": ["error", { "allowLoop": true, "allowSwitch": true }]
这些规则也可能来自您正在扩展的配置,因此您可能需要考虑删除、覆盖或更新该配置。