繁体   English   中英

如何在 babel-plugin-module-resolver 中使用 root 选项?

[英]How to use root option in babel-plugin-module-resolver?

我正在尝试在 react-native 应用程序中使用babel-plugin-module-resolver 当我在babel.config.js使用这样的插件配置时,它工作得很好。

plugins: [
    [
      'module-resolver',
      {
        extensions: ['.ios.js', '.android.js', '.js', '.json'],
        alias: {
          utils: './src/utils',
        },
      },
    ],
  ],

但问题是我必须在每个别名路径中写入 ./src 。 所以我尝试使用root选项。 这是我试过的代码

plugins: [
    [
      'module-resolver',
      {
        root: './src', // I also tried ['./src']
        extensions: ['.ios.js', '.android.js', '.js', '.json'],
        alias: {
          utils: 'utils', // already tried '/utils' and './utils'
        },
      },
    ],
  ],

但这对我不起作用,我收到此错误:

error: Error: Unable to resolve module '../../../utils/Themes' from 'src/components/shared/Container.js': 

那么使用root选项的正确方法是什么?

好吧,我找到了一个解决方案,它不能真正解决问题,但可以使它起作用。

我正在使用打字稿和 babel 来编译它。

我的文件结构是这样的:

|-dist
|-src
  |-db
     |-connect
        |-index.ts
  |-index.ts
|-.babelrc
|-etc...

当 babel 编译我的代码时, src/index.tsdb/connect的导入,从这个开始:

import ... from "db/connect"

对此:

var _connect = require("../db/connect");

应该是这样的:

var _connect = require("./db/connect");

你怎么看,babel 支持一个文件夹,无论我尝试什么,这仍然缺少 require 路径。

所以,为了解决这个问题,我只需将/dist添加到.babelrc的路径

前:

[
   "module-resolver",
      {
         "root": ["./"], # or ["src"] or "src" or ["./src"] or "./src" or any way you can imagine
         "alias": {
            "db": "./db",
         }
      }
   }
]

后:

[
   "module-resolver",
      {
         "alias": {
            "db": "./dist/db",
         }
      }
   }
]

正如您所说, root不会影响需要路径,所以我只是将其删除。

这不能解决问题,但可以使它起作用。

希望能帮到你,祝你好运! :)

检查文件 bable.config.js 并删除插件模块解析器,root 对我有帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM