我正在尝试在react原生应用程序中使用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选项的正确方法是什么呢?
发布于 2020-11-28 10:20:46
好吧,我找到了一个解决方案,它并没有真正解决这个问题,但让它正常工作。
我正在使用typescript和babel来编译它。
我的文件结构是这样的:
|-dist
|-src
|-db
|-connect
|-index.ts
|-index.ts
|-.babelrc
|-etc...当巴别塔编译我的代码,在src/index.ts中导入db/connect时,从下面开始:
import ... from "db/connect"要这样做:
var _connect = require("../db/connect");应该是这样的:
var _connect = require("./db/connect");你可以看到,babel支持一个文件夹,不管我怎么尝试,这仍然缺少所需的路径。
因此,为了解决这个问题,我只需在.babelrc中的路径中添加/dist
之前:
[
"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不会影响请求路径,所以我只是删除了它。
这不能解决问题,但可以使其正常工作。
希望它能帮上忙,祝你好运!:)
发布于 2021-11-25 15:57:07
签入文件bable.config.js并删除插件模块解析器,根目录对我有帮助
https://stackoverflow.com/questions/64726845
复制相似问题