babel-plugin-module-resolver

babel-plugin-module-resolver 是一个Babel模块解析插件, 在.babelrc中可以配置模块的导入搜索路径. 为模块添加一个新的解析器。这个插件允许你添加新的“根”目录,这些目录包含你的模块。它还允许您设置一个自定义别名目录,具体的文件,甚至其他NPM模块。

使用方法:

npm install --save-dev babel-plugin-module-resolver

使用yarn命令也是可以的

然后配置项目根目录的.bablerc文件:

{

  "plugins": [

    ["module-resolver", {

      "root": ["./"],

      "alias": {

        "P":"./app/p"

      }

    }]

  ]

}

示例

因为.babelrc文件的路径在项目根, 我们指定配置module-resolver的root为”./”, 因此我们在使用类似import X from ‘path’导入模块的使用可以不指定../../这种相对路径, 默认以项目根为模块的搜索路径.也可以使用别名,而不是在项目中使用相对路径。下面举个简单的例子:

//import Mp from '../../p/MyPropTypes';

import Mp from 'P/MyPropTypes'

import MyUtilFn from 'utils/MyUtilFn';

//import MyUtilFn from '../../../../utils/MyUtilFn';

MyPropTypes这个文件处于根目录下的app/p文件夹下.

可以看出,这样的写法大大加快了开发效率.

选项

root:一个字符串或根目录的数组。指定路径或全局路径(例如./src/**/components)

alias:别名的配置。也可以别名node_modules依赖关系,而不仅仅是本地文件。

extensions:解析器中使用的扩展数组。覆盖默认扩展名(['.js', '.jsx', '.es', '.es6', '.mjs'])。

cwd:默认情况下,工作目录是用于解析器的工作目录,但是您可以覆盖您的项目。

自定义值babelrc将使插件根据要解析的文件查找最接近的babelrc配置。

自定义值packagejson将使插件查找最接近package.json的文件解析。

transformFunctions:将会变换其第一个参数的函数和方法的数组。默认情况下,这些方法是:require,require.resolve,System.import,jest.genMockFromModule,jest.mock,jest.unmock,jest.doMock,jest.dontMock。

resolvePath(sourcePath, currentFile, opts):为文件中的每个路径调用的函数。默认情况下,模块解析器使用一个内部函数,如下所示:import { resolvePath } from 'babel-plugin-module-resolver'。该opts参数是通过babel配置通过选择对象。


在ReactNative中使用

让packager正确解决各平台的模块,你必须添加 ios.jsand android.js扩展:

{

  "plugins": [

    [

      "module-resolver",

      {

        "root": ["./src"],

        "extensions": [".js", ".ios.js", ".android.js"]

      }

    ]

  ]

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,440评论 19 139
  • 写在前面的话 阅读本文之前,先看下面这个webpack的配置文件,如果每一项你都懂,那本文能带给你的收获也许就比较...
    不忘初心_9a16阅读 8,464评论 0 17
  • babel官网 babel 介绍 Babel 是一个通用的多用途 JavaScript 编译器。通过 Babel ...
    锋享前端阅读 5,801评论 0 10
  • 高中毕业 并未迎来多少解放欣喜,反倒陷入巨大的平静中。理财练习口语跑步练字尝试有规律的生活,对我来说通通惨败。误打...
    生涯will阅读 981评论 0 0
  • 文/Mika小云 自从我接了主持的任务之后,不敢懈怠了。比如控制自己去逛街、少看一些休闲性的文章视频,晚上早睡觉了...
    MikaGO阅读 669评论 0 0