reactjs - process.node.env 在 eslintrc.js 中未定义

标签 reactjs eslint

我需要一些 linting 规则来抛出错误或警告,具体取决于构建是开发还是生产。在开发期间的 React 组件文件中 process.env.NODE_ENV === 'development'

在 eslintrc.js 中我有:

const production = process.env.NODE_ENV !== 'development'; // returns true
console.log('%c process.env.NODE_ENV', 'color: green;', process.env.NODE_ENV); // returns undefined

我希望能够在 linting 规则警告之间切换。和这样的错误:

    rules: {
        'no-tabs': 0,
        indent: [2, 'tab', { SwitchCase: 1, VariableDeclarator: 1 }],
        'react/jsx-props-no-spreading': 'off',
        'no-unused-vars':
            production
                ? 'error'
                : 'warn',

为什么process.env.NODE_ENV未定义以及如何解决这个问题?

最佳答案

由于它在静态分析期间未定义,因此您始终可以执行以下操作:

  'no-console': (() => {
      if (typeof process.env.NODE_ENV === 'undefined') {
        return 'off';
      }

      if (process.env.NODE_ENV === 'development') {
        return 'off';
      }

      return 'error';
    })(),

关于reactjs - process.node.env 在 eslintrc.js 中未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64612824/

相关文章:

reactjs - refs 与 onChange

reactjs - 当 Material ui slider 有多个拇指时,如何独立设置每个拇指的样式?

javascript - 如何解决 `React Hook useEffect has a missing dependency`的 `react-hooks/exhaustive-deps`?

javascript - Material UI 表慢

javascript - Animated.Value 的 Prop 类型?

javascript - 我如何在 react 中只允许数字输入,例如,如果有人尝试复制粘贴文本

typescript - ESlint 不适用于带有 typescript 的 .vue 文件

javascript - 仅当 js 文件发生更改时才运行 eslint 集成

javascript - jQuery 匿名函数的 ESLint 错误

eslint - 如何使用长 svg 路径满足 eslint 最大行长规则?