问题标签 [eslint-plugin-import]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3282 浏览

typescript - 使用打字稿别名时,eslint import/order 崩溃

我在一个大型反应项目中使用打字稿路径别名。例如,在我的 tsconfig.json 中,我指定了一些路径别名:

好的,现在当我想导入一些模块时,我可以使用这些别名。我们也在使用 eslint,我们使用的规则之一是import/order. 它强制从 node_modules 出来的任何东西都应该在任何本地模块之前导入。我喜欢这个规则。不使用我的别名:

这会抛出 linting 错误,但是根据 eslint 格式化文件会自动将 formik import 移到 import 上面SomeComponent,这正是我想要的。

但是,当使用我的别名时,这不会引发错误:

就好像打字稿路径别名欺骗了import/order规则,现在该规则失效了。

问题:我的 linter 如何仍能识别这些别名路径?我可以配置此插件的groupsorpathGroups 选项以正确分组和命令我的别名本地模块位于我的节点模块之后吗?

奖金问题:

我不一定需要按顺序区分别名模块和非别名模块。例如

只要导入在所有这些之前进行,我就可以保留 , 和 的导入SomeCloseComponent顺序SomeComponent。是否可以将别名导入置于与非别名导入相同的“优先级”分组级别,这意味着它们不会相互重新排序,但都会在 node_module 导入之后出现?AnotherCloseComponentformik

编辑 - 再次尝试:

根据 Aviv Hadar 的回答,我在我的 eslint 文件中尝试了这个:

这样做的原因是它将所有以内部开头的导入都@视为内部导入,并将它们与其他内部导入保持在同一级别。所以这不会引起警告:

这就是我想要的 - 所有内部模块都处于同一分组级别,无论别名与否,或父/兄弟。但是,这应该显示一个警告,但它不会:

最后一个导入确实以 开头@,但它是一个 node_module,并且应该在列表的顶部。回想起来,我希望我们会选择不同的别名前缀,但我们没有。有没有办法调整我的配置以正确地将 node_modules 解释为external,并将它们保留在该组中以进行排序?

0 投票
0 回答
913 浏览

reactjs - 无法加载配置“更漂亮”以扩展。(此问题的先前参考没有帮助)

执行上述命令后,我面临以下问题

无法加载在“.eslintrc.js”中声明的插件“prettier”:找不到模块“eslint-plugin-prettier”需要堆栈:-/home/tahmid/latest_projects/Etherium/Etherium_Transactions/React_Etherium/react-dapp/node_modules/react -scripts/config/ placeholder.js引用自:/home/tahmid/latest_projects/Etherium/Etherium_Transactions/React_Etherium/react-dapp/.eslintrc.js

为了解决这个错误,我使用了以下 -

然后就出现了——

引用自:/home/tahmid/latest_projects/Etherium/Etherium_Transactions/React_Etherium/react-dapp/.eslintrc.js

为了解决它,"eslint": "^5.8.0",将此添加到我的 package.json 并执行此命令 -npm i eslint-plugin-prettier

然后发生了——

所以我安装了这个

什么都没有改变

现在我完全不知道下一步该做什么

包.json

eslint-plugin-prettier.js

应用程序.js

0 投票
0 回答
37 浏览

reactjs - Glob minimatch 模式在单个组中获取 React 和 Meteor 导入

我正在尝试设置eslint-plugin-import软件包以根据需要订购我的进口商品。

这是一个无序的示例:

我想做的第一组是以meteor/and开头的导入react

所以我需要得到:

我希望像*(meteor/**|react*)工作一样的东西,但事实并非如此。

react*- 给我正确的结果。

meteor/**- 也

但我不明白如何正确地将它们组合在一起。那可能吗?

0 投票
1 回答
382 浏览

eslint - 在 monorepo 中使用 eslint-plugin-import 时不应该报告错误?

如果我设置了以下 monorepo

  • packages/app1is-even中有 package.json
  • packages/app2is-even在其 package.json中没有
  • packages/app2 尝试使用is-even

然后,目前,我没有收到来自 eslint-plugin-import 之类的任何警告,最好是我想要一个错误,因为如果我发布 app2,那么任何尝试从 NPM 安装它的用户都会收到错误,因为它没有正确指定它需要is-even作为依赖项

这里有一个最小的monorepo https://github.com/cmdcolin/yarn_workspaces_eslint_plugin_import的可重现案例