ESLint ES6 Redux global-required Unexpected require();

Posted

技术标签:

【中文标题】ESLint ES6 Redux global-required Unexpected require();【英文标题】: 【发布时间】:2016-09-26 00:02:24 【问题描述】:

我在使用 ESLint 时遇到了这个问题,我无法自己解决问题,正如您在屏幕截图中看到的那样,这些商店对于每个环境都是分开的,我该如何解决这个问题才能让 ESLint 开心并让我学习新事物?

【问题讨论】:

【参考方案1】:

这是因为您需要分支代码:http://eslint.org/docs/rules/global-require。

如果您不想更改代码,只需添加禁用 cmets:

/* eslint-disable global-require */

// your code here

/* eslint-enable global-require */

【讨论】:

然后改变?我应该怎么做?我阅读了有关 global-require 的信息,但我完全理解不了,哈哈。它使 require 的行为类似于导入,对吗? 是的,这意味着它必须是***的。最简单的更改方法是只需要所有 3 个,并且只导出您需要的那个(您可以在 if 语句中保留对 module.exports 的分配,只需将要求移出,所以 var prod = require('config.prod') ;等 这是一个好习惯吗?我的意思是,需要将所有内容都放入模块中,然后在最初可以导入所需内容时导出所需内容。【参考方案2】:

您可以在 .eslintrc 文件中禁用它。


   rules: 
     "global-require": 0  
    

【讨论】:

【参考方案3】:

就我而言,我在如下功能组件中导入图像文件。

export const facebookIcon = require('../../assets/images/facebook.svg')
export const googleIcon = require('../../assets/images/google.svg')
export const logoboxImage = require('../../assets/images/logo-box.svg')

为了避免这种 lint 错误,我刚刚删除了图像前面的“导出”,它已经消失了。

const facebookIcon = require('../../assets/images/facebook.svg')
const googleIcon = require('../../assets/images/google.svg')
const logoboxImage = require('../../assets/images/logo-box.svg')

【讨论】:

【参考方案4】:

你也可以内联禁用它:

const facebookIcon = require('../../assets/images/facebook.svg'); // eslint-disable-line global-require

【讨论】:

【参考方案5】:

这就是我在 2022 年所做的,没有改变规则

<div :style="backgroundImage: 'url(' + bg + ')'" </div>
<script>
import bgImg from './assets/images/lg_bg.jpg';
export default 
    data() 
      return 
        bg: bgImg,
    ;
  ,    

</script>

【讨论】:

以上是关于ESLint ES6 Redux global-required Unexpected require();的主要内容,如果未能解决你的问题,请参考以下文章

ESlint 在编译 es6 导入/导出语句时失败

json ESLint 2,es6和React。

json ESLint JavaScript / ES6 / React配置

json ESLint配置为es6-babel

ESlint:在未转译的 ES5 代码库中突出显示 ES6 代码

有没有一种优雅的方法来告诉 eslint 以确保我们没有使用任何 ES6 语法/函数?