当需要在函数中使用具有动态路径的文件时,如何修复 eslint 故障



我需要在组件外部使用react-int,特别是在util文件中。为了实现这一点,我正在使用此代码 https://gist.github.com/genadyp/435f4e264cb6e377836cf63bee8987d8但是我遇到了一个失败的 eslint 问题,它不接受在函数中使用 require 并使用动态文件路径。

这是 ESLINT 输出:

错误意外要求(( 全局要求错误 对 require(( 的调用应该使用字符串文字导入/无动态要求

任何意见和建议将不胜感激。

//util.js
export function formatMessage(t, locale) {
    if (t=== 0 || t === 2400) {
        const translations 
        =require(`src/locales/${locale.toLowerCase()}.json`));
        const intlProvider = new IntlProvider({ locale, messages: 
        translations }, {});
        const mes = defineMessages({
            morning: {
                id: 'greeting.morning',
                defaultMessage: 'hello',
            },
            evening: {
                id: 'greeting.evening',
                defaultMessage: 'good evening',
            },
       });
       const { intl } = intlProvider.getChildContext();
       return t === 0 ? intl.formatMessage(mes.morning) : 
           intl.formatMessage(mes.evening);
  }
}

您可以在此处阅读有关此规则推理的更多信息:https://eslint.org/docs/rules/global-require

如果您非常确定自己在做什么,则可以禁用在语句之前添加此注释的规则:// eslint-disable-next-line global-require

最新更新