Browse Source

disable eslint warnings on CI build

Klaudiusz Dembler 4 years ago
parent
commit
dceeeb48d0
2 changed files with 41 additions and 25 deletions
  1. 28 22
      packages/app/config-overrides.js
  2. 13 3
      packages/app/tsconfig.json

+ 28 - 22
packages/app/config-overrides.js

@@ -1,6 +1,6 @@
 /* eslint-disable @typescript-eslint/no-var-requires */
 const path = require('path')
-const { override, addBabelPreset, addWebpackAlias } = require('customize-cra')
+const { override, addBabelPreset, addWebpackAlias, disableEsLint } = require('customize-cra')
 const eslintConfig = require('../../.eslintrc.js')
 
 const modifiedEslintConfig = {
@@ -13,29 +13,35 @@ const modifiedEslintConfig = {
 }
 
 // based on https://github.com/arackaf/customize-cra/issues/175#issuecomment-610023655
-const customEslintConfig = (configRules) => (config) => {
-  const updatedRules = config.module.rules.map((rule) => {
-    // Only target rules that have defined a `useEslintrc` parameter in their options
-    if (rule.use && rule.use.some((use) => use.options && use.options.useEslintrc !== undefined)) {
-      const ruleUse = rule.use[0]
-      const baseOptions = ruleUse.options
-      const baseConfig = baseOptions.baseConfig || {}
-      const newOptions = {
-        useEslintrc: false,
-        ignore: true,
-        baseConfig: { ...baseConfig, ...configRules },
-      }
-      ruleUse.options = newOptions
-      return rule
+const customEslintConfig = (configRules) => {
+  if (process.env.CI) {
+    return disableEsLint()
+  }
+
+  return (config) => {
+    const updatedRules = config.module.rules.map((rule) => {
+      // Only target rules that have defined a `useEslintrc` parameter in their options
+      if (rule.use && rule.use.some((use) => use.options && use.options.useEslintrc !== undefined)) {
+        const ruleUse = rule.use[0]
+        const baseOptions = ruleUse.options
+        const baseConfig = baseOptions.baseConfig || {}
+        const newOptions = {
+          useEslintrc: false,
+          ignore: true,
+          baseConfig: { ...baseConfig, ...configRules },
+        }
+        ruleUse.options = newOptions
+        return rule
 
-      // Rule not using eslint. Do not modify.
-    } else {
-      return rule
-    }
-  })
+        // Rule not using eslint. Do not modify.
+      } else {
+        return rule
+      }
+    })
 
-  config.module.rules = updatedRules
-  return config
+    config.module.rules = updatedRules
+    return config
+  }
 }
 
 module.exports = {

+ 13 - 3
packages/app/tsconfig.json

@@ -3,7 +3,11 @@
   "compilerOptions": {
     "target": "es2019",
     "baseUrl": "./",
-    "lib": ["dom", "dom.iterable", "es2019"],
+    "lib": [
+      "dom",
+      "dom.iterable",
+      "es2019"
+    ],
     "allowJs": true,
     "skipLibCheck": true,
     "esModuleInterop": true,
@@ -14,6 +18,12 @@
     "isolatedModules": true,
     "noEmit": true
   },
-  "exclude": ["node_modules", "dist", "src/shared/stories"],
-  "include": ["src"]
+  "exclude": [
+    "node_modules",
+    "dist",
+    "src/shared/stories"
+  ],
+  "include": [
+    "src"
+  ]
 }