【问题标题】:Ignoring eslint error for moment.js忽略 moment.js 的 eslint 错误
【发布时间】:2017-09-16 20:19:47
【问题描述】:

我在我的 react 应用程序中添加 moment.js 作为外部资源,如下所示:

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>

当我在启用了eslint 的代码文件中使用moment 时,我收到了这个eslint 错误:'moment' is not defined(no-undef)

这是我的 .jsx 文件-

constructor() {
  super()
  this.state = {
    startDate: moment()
  }
}
...

我的eslintrc.yml 看起来像这样:

extends:
- jquery
- airbnb

parser: babel-eslint

parserOptions:
  ecmaVersion: 6
  ecmaFeatures:
    experimentalObjectRestSpread: true
    jsx: true
  sourceType: "module"

env:
  browser: true
  node: true
  jquery: true
...

【问题讨论】:

  • 当您在全局范围内使用 moment(绑定到 window 对象)时,您可以在模块中使用 window.moment。作为替代方案,您可以通过 npm 安装 moment 并将其用作代码中的任何其他模块。

标签: javascript momentjs eslint eslint-config-airbnb


【解决方案1】:

如果你使用 webpack。 npm 安装时刻--保存 时刻导入;

或者您可以通过在同一行中的 moment() 之后添加注释来禁用 linting。 // eslint-disable-line

【讨论】:

    【解决方案2】:

    如果使用是硬性要求

    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
    

    但是你可以编辑.eslintrc文件,你可以告诉eslint你已经在全局命名空间中提供了moment,这就是你的脚本标签正在做的事情。

    {
    //...
        "env": {
            "moment": true
        }
    //...
    }
    

    Link to eslint environment docs

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-07
      • 2017-11-01
      • 2021-08-06
      • 2013-12-15
      • 1970-01-01
      • 2015-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多