簡體   English   中英

Eslint no-restricted-imports 僅限制從 package 根目錄導入?

[英]Eslint no-restricted-imports only restrict importing from a package root?

例如,我想限制導入react-use ,但允許react-use/lib/usePrevious 我試過了:

  rules: {
    'no-restricted-imports': [2, { patterns: [
      'react-use',
    ] }],
  },

  rules: {
    'no-restricted-imports': [2, { patterns: [
      'react-use',
      '!react-use/*',
    ] }],
  },

但是,在這兩種情況下,我都會收到以下錯誤:

import usePrevious from 'react-use/lib/usePrevious';

我只想要一個錯誤:

import something from 'react-use';

這是 ESLint 用於檢查每個模式的ignore庫的限制。 它旨在用更緊湊和准系統的東西替換現有的文件忽略方法。

具體來說,問題似乎是這個忽略系統假設您的文件結構嚴格類似於目錄,其中限制react-use並忽略!react-use/*意味着react-use是一個文件夾。 但是,使用模塊導入結構, react-use可以引用文件(通過其index.js )並同時包含子文件夾,如react-use/lib使其既可用作文件可用作文件夾。

因此,在限制子路徑的同時,不可能忽略模塊的基礎。

我想用 lodash 做同樣的事情。

對於 Treeshaking,我想限制

從'lodash'導入{get};

但允許

從“lodash/get”導入獲取;

為此的 eslint 配置,

'no-restricted-imports': [
      'error',
      {
        paths: [
          {
            name: 'lodash',
            message:
              "Please use `import [package] from 'lodash/[package]'` instead."
          }
        ],
        patterns: ['!lodash/*']
      }
    ]

您可以對 package 進行相同的嘗試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM