When building my app I get the following error message since I switched to React Native 70.6 (Android and iOS), without @react-navigation everything works. On React Native 69.7, the app runs without problems with the identical @react-navigation versions.
Error: Unable to resolve module missing-asset-registry-path from /node_modules/@react-navigation/elements/lib/commonjs/assets/back-icon-mask.png: missing-asset-registry-path could not be found within the project or in these directories:
node_modules
> 1 | �PNG
2 |
3 |
4 | IHDR2���gAMA��
�a cHRMz&�����u0�`:�p��Q<bKGD���̿tIME�
at ModuleResolver.resolveDependency (/node_modules/metro/src/node-haste/DependencyGraph/ModuleResolution.js:178:15)
at DependencyGraph.resolveDependency (/node_modules/metro/src/node-haste/DependencyGraph.js:264:43)
at Object.resolve (/node_modules/metro/src/lib/transformHelpers.js:170:21)
at resolveDependencies (/node_modules/metro/src/DeltaBundler/graphOperations.js:466:33)
at processModule (/node_modules/metro/src/DeltaBundler/graphOperations.js:232:31)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async addDependency (/node_modules/metro/src/DeltaBundler/graphOperations.js:361:18)
at async Promise.all (index 18)
at async processModule (/node_modules/metro/src/DeltaBundler/graphOperations.js:279:3)
at async addDependency (/node_modules/metro/src/DeltaBundler/graphOperations.js:361:18)
这都是由于在 metro.config.js 中设置别名造成的。
据我了解,当我们在那里设置别名配置时,它们适用于整个项目,甚至影响node_modules中的导入,但也许我错了。
您需要做的只是删除 metro.config.js 并将别名配置设置为 .babelrc。如果您还没有安装 babel-plugin-module-resolver,请下载它:
yarn 添加 babel-plugin-module-resolver
npm 我 babel-plugin-module-resolver
安装后配置.babelrc,如下所示:
{
"plugins": [
[
"module-resolver",
{
"root": [
"."
],
"alias": {
"@src": "./src",
"@": "./"
}
}
]
]
}