首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在babel-plugin-module-resolver中使用root选项?

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

Stack Overflow用户
提问于 2020-11-07 18:45:10
回答 2查看 1.8K关注 0票数 2

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

代码语言:javascript
复制
plugins: [
    [
      'module-resolver',
      {
        extensions: ['.ios.js', '.android.js', '.js', '.json'],
        alias: {
          utils: './src/utils',
        },
      },
    ],
  ],

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

代码语言:javascript
复制
plugins: [
    [
      'module-resolver',
      {
        root: './src', // I also tried ['./src']
        extensions: ['.ios.js', '.android.js', '.js', '.json'],
        alias: {
          utils: 'utils', // already tried '/utils' and './utils'
        },
      },
    ],
  ],

但这对我不起作用,我得到了这个错误:

代码语言:javascript
复制
error: Error: Unable to resolve module '../../../utils/Themes' from 'src/components/shared/Container.js': 

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

EN

回答 2

Stack Overflow用户

发布于 2020-11-28 10:20:46

好吧,我找到了一个解决方案,它并没有真正解决这个问题,但让它正常工作。

我正在使用typescript和babel来编译它。

我的文件结构是这样的:

代码语言:javascript
复制
|-dist
|-src
  |-db
     |-connect
        |-index.ts
  |-index.ts
|-.babelrc
|-etc...

当巴别塔编译我的代码,在src/index.ts中导入db/connect时,从下面开始:

代码语言:javascript
复制
import ... from "db/connect"

要这样做:

代码语言:javascript
复制
var _connect = require("../db/connect");

应该是这样的:

代码语言:javascript
复制
var _connect = require("./db/connect");

你可以看到,babel支持一个文件夹,不管我怎么尝试,这仍然缺少所需的路径。

因此,为了解决这个问题,我只需在.babelrc中的路径中添加/dist

之前:

代码语言:javascript
复制
[
   "module-resolver",
      {
         "root": ["./"], # or ["src"] or "src" or ["./src"] or "./src" or any way you can imagine
         "alias": {
            "db": "./db",
         }
      }
   }
]

之后:

代码语言:javascript
复制
[
   "module-resolver",
      {
         "alias": {
            "db": "./dist/db",
         }
      }
   }
]

正如您所说,root不会影响请求路径,所以我只是删除了它。

这不能解决问题,但可以使其正常工作。

希望它能帮上忙,祝你好运!:)

票数 1
EN

Stack Overflow用户

发布于 2021-11-25 15:57:07

签入文件bable.config.js并删除插件模块解析器,根目录对我有帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64726845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档