NPM 包 @laurentgoudet/eslint-import-resolver-jspm 使用教程

阅读时长 4 分钟读完

简介

在使用 ES6 模块语法进行开发时,我们经常会使用一些第三方库,如 jQuery、React 等。然而,由于这些库的路径都是相对于当前文件的,而非项目根目录的,导致在使用 ESLint 进行代码检查时会出现错误,这时需要使用一些特殊的解释器来解决这个问题。

@laurentgoudet/eslint-import-resolver-jspm 就是一种用于解析 ES6 模块路径的插件,可以在 ESLint 中使用,它可以让我们针对 jspm 的路径解析规则,实现 ESLint 在使用路径时符合 jspm 的路径解析规则,从而避免一些不必要的问题。

本文将详细介绍如何使用 @laurentgoudet/eslint-import-resolver-jspm 进行代码检查,并给出一些使用示例。

安装方式

使用 npm 安装该包,执行命令:

配置方式

在 lint 的配置文件 .eslintrc.* 中,添加 "settings" 和 "resolver" 配置项:

-- -------------------- ---- -------
-
  ----------- -
    ------------------ -
      ------- -
        ----------------- -------------------
        -------------- ----
      -
    -
  --
  ----------- -
    ------- -
      ------------- ------- ------- ------ -------
    -
  --

  ----------
-

其中,jspmConfigFile 参考项目路径下的 jspm.config.js 配置文件;projectPath 指定了项目的根路径。

使用示例

假设我们有一个示例工程,目录如下:

其中,index.js 中引入了 App.jsx 组件,如下:

这种方式使用了相对路径,由于我们没有其他的相关配置,就会引起 ESLint 的报错,如下:

为了避免这个错误,使用 @laurentgoudet/eslint-import-resolver-jspm 就可以解决这个问题了。

这就是我们在使用 @laurentgoudet/eslint-import-resolver-jspm 之后的效果。

结合更多配置

除了 @laurentgoudet/eslint-import-resolver-jspm,我们还可以结合其他的配置项进行更好的代码检查。

比如,我们可以使用 ESLint 的 import/no-extraneous-dependencies 规则,禁止使用无关的依赖。

-- -------------------- ---- -------
-
  ---------- -
    ---------
    -----------------------------
  --
  ---------- -------------
  -------- -
    ------------------------------------ --------- - ------------------ ----------------- --------------- --------------- ----------------  --
  --
  ----------- -
    ------------------ -
      ------- -
        ----------------- -------------------
        -------------- ----
      -
    -
  --
  ----------- -
    ------- -
      ------------- ------- ------- ------ -------
    -
  -
-

在这个示例中,我们同时使用了 airbnbprettier 的规则,并且对 import/no-extraneous-dependencies 进行了自定义。这就是一个结合了多个规则的示例配置。

总结

@laurentgoudet/eslint-import-resolver-jspm 是一个非常实用的插件,能够帮助我们避免一些不必要的问题,同时,它还能结合其他的检查规则,使我们写的代码更健康、更规范。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066bc7967216659e24450c

纠错
反馈