我尝试在一个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
选项的正确方法是什么呢?
2条答案
按热度按时间e4eetjau1#
嗯,我找到了一个解决方案,它并没有真正解决问题,但使它工作。
我用 typescript 和巴别来编译它。
我的文件结构是这样的:
当Babel编译我的代码时,在
src/index.ts
中导入db/connect
,从这个开始:更改为:
应该是这样的:
你可以看到,babel支持一个文件夹,无论我怎么尝试,这仍然缺少所需的路径。
因此,要解决此问题,我只需将
/dist
添加到.babelrc
中的路径之前:
之后:
正如你所说,
root
不影响require路径,所以我只是删除了它。这并不能解决问题,但能让它发挥作用。
希望对你有帮助,祝你好运
qzwqbdag2#
签入文件bable.config.js并删除插件模块-resolver,root它对我有帮助