【问题标题】:Disable eslint parsing error message禁用 eslint 解析错误信息
【发布时间】:2016-01-31 12:48:55
【问题描述】:

在我的代码中,我有一个条件导出:

if (process.env.NODE_ENV === 'testing')
  export myFunc;

在 es6 中这个语句是不允许的,因为导入和导出应该是顶级的,但是使用带有一些插件和 webpack 的 babel 会在构建时消除这种情况,所以在我生成的代码中,这个导出要么是顶级的,要么是顶级的不存在。

但是 eslint 报告解析错误,我想摆脱它。 /*eslint-disable */ 不起作用,因为这不是违反规则,而是解析错误。有没有可能的解决方法?

P.S.:我知道我可以 commonjs 它,但我想坚持使用 es6。

【问题讨论】:

标签: javascript node.js ecmascript-6 babeljs eslint


【解决方案1】:

我知道我可以通用它,但我想坚持使用 es6。

真的,你不符合 ES6 规范,所以...你需要 commonjs 它

transpiler 背后的理念是,您可以在下一个规范出现时禁用它。

在这种情况下,您的代码将无法在完整的 ES6 环境中运行。

【讨论】:

    【解决方案2】:

    没有解决办法。

    使用非顶级导入不适用于原生 ES6 实现。 Babel 允许它,因为它转换为 CommonJS 要求,但在技术上它在 ES6 中是不允许的。

    eslint issueespree issue

    【讨论】:

    • 我不依赖转译为 commonjs 来进行条件导出,我将其用作预处理器指令。
    • 是的,但是 eslint parser (espree) 看到了未转译的代码 - if (...) {import ...}
    • 我同意。这就是为什么我想找到一种方法让他假装他没有看到它,就像我可以让他假装他没有看到违规行为一样。
    • 但这是 eslint 问题,而是 espree。您不能通过 eslint-disable 规则忽略 espree 错误和警告。
    • 但这不是 eslint 问题,而是 espree。 *
    猜你喜欢
    • 2016-06-26
    • 2017-10-11
    • 2019-12-25
    • 1970-01-01
    • 2021-06-10
    • 2016-03-11
    • 1970-01-01
    • 2018-03-28
    • 2022-01-02
    相关资源
    最近更新 更多