【问题标题】:Import sources within a group must be alphabetized组内的导入源必须按字母顺序排列
【发布时间】:2018-11-25 07:19:56
【问题描述】:

好像我不知道字母表。请告诉我哪里没有订购:

import * as React from 'react';
import {
  Badge,
  Button,
  ButtonGroup,
  Collapse,
  Dropdown,
  DropdownItem,
  DropdownMenu,
  DropdownToggle,
  Input,
  InputGroup,
  InputGroupAddon,
  Nav,
  Navbar,
  NavbarBrand,
  NavItem,
  NavLink,
  UncontrolledAlert,
} from 'reactstrap';
import {logoutUser} from '../actions/user';
import {positionSidebar,toggleSidebar,toggleVisibilitySidebar} from '../actions/navigation';

import s from './Header.scss';

import sender1 from '../../images/1.png';
import sender2 from '../../images/2.png';
import sender3 from '../../images/3.png';

它在第 22 行给了我错误:“组内的导入源必须按字母顺序排列。”(import {positionSidebar....)但它们的顺序正确! (或者也许我必须回到学校:()。

我试图禁用这种愚蠢的字母顺序:但我也做不到:

 "extends": ["tslint:recommended", "tslint-react", "tslint-config-prettier"],
 "ordered-imports": [true, {
   "import-sources-order": "any",
   "named-imports-order": "any",
   "grouped-imports": false,
   "module-source-path": "basename"
 }]

这不起作用并且错误重复。我会把它发布在 github 上,但是有很多关于这个的帖子,也许这不是一个错误。如果您认为这是错误,请告诉我,我会在那里发布。

我的 tslint 导入:

"tslint": "^5.7.0",
"tslint-config-prettier": "^1.10.0",
"tslint-react": "^3.2.0",

【问题讨论】:

  • 到底是什么错误?
  • tslint 中有序导入的规则称为ordered-imports,而不是object-literal-sort-keys
  • @hackerrdave 好的,谢谢。我也会尝试“ordered-imports”,事实上我读过一些关于它的东西,但我没有测试它。
  • @Nunicorn 错误在第 22 行:组必须按字母顺序排列

标签: typescript tslint


【解决方案1】:

如果有人像我一样傻,我在谷歌搜索字母顺序并将我的导入复制粘贴到工具中。我把我用过的链接给你,但也许在页面关闭的时候。只需搜索“按字母顺序”或类似的东西,肯定会有页面这样做。

注意。正如 @hackerrdave 所说:有时问题出在路径而不是导入(当您导入带有括号 {} 或 * 的内容时,我注意到路径命令)所以也许您必须订购路径而不是导入.

https://alphabetizer.flap.tv/

【讨论】:

    【解决方案2】:

    排序 lint 错误不在单个命名导入上,而是在文件路径上:

    import {logoutUser} from '../actions/user';
    import {positionSidebar,toggleSidebar,toggleVisibilitySidebar} from '../actions/navigation';
    

    文件路径也用作排序的一部分,应该是:

    '../actions/navigation';
    '../actions/user';
    

    您可以使用此 tslint 配置完全禁用导入排序:

    "ordered-imports": false
    

    【讨论】:

    • 但是哪个更重要:导入还是路径?我想:“logoutUser 以“l”开头,positionSidebar 以“p”开头。所以首先 logoutUser,然后是 positionSidebar” 我还阅读了有关路径的信息,但我不明白我应该先检查什么它对我来说没有逻辑 uu
    • 我相信大括号中的命名导入仅针对同一集合中的其他命名导入进行排序 - 所以logoutUser 不会针对positionSidebar 排序。您也可以禁用这些设置,以下是相关文档:palantir.github.io/tslint/rules/ordered-imports
    • 你好,我按照你说的做了,我也输入了:“module-source-path”:“basename”(false 不是有效值)但错误仍在继续。
    • 请有人告诉我如何禁用导入命令。我被困了好几天了。无法理解正确的顺序是什么。真的没有任何作用......
    • 如果您知道路径的顺序正确并且您仍然看到错误,解决它的一种方法是重命名罪魁祸首文件并将其更改回原始文件。这为我消除了错误。
    猜你喜欢
    • 2019-03-12
    • 1970-01-01
    • 2019-05-10
    • 2019-08-10
    • 2018-12-08
    • 1970-01-01
    • 1970-01-01
    • 2019-07-31
    • 1970-01-01
    相关资源
    最近更新 更多