1

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

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

当我在启用moment的代码文件中使用时,我eslint收到了这个 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
...
4

2 回答 2

3

如果你使用 webpack。npm install moment --save import moment from moment;

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

于 2017-09-16T21:09:08.450 回答
0

如果使用是一项硬性要求

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

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

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

链接到eslint环境文档

于 2020-02-14T02:53:13.233 回答