Unable to resolve module @env from D:reactweathoweatho-appApp.js: @env could not be found within the project
10:import {REACT_APP_WEATHER_API_KEY} from "@env";
我的env文件看起来像这样:
REACT_APP_WEATHER_API_KEY=2607fb610e6f9fecd16c84408d0b42a2
和我的Babel文件看起来像这样:
module.exports = function(api) {
api.cache(true);
return {
plugin: ['babel-preset-expo','module:react-native-dotenv'],
}
}
和我的env文件与Appjson和其他几个文件一起在根文件夹
你应该添加一个这样的插件(Env文件必须在根目录下)
module.exports = function (api) {
api.cache(true);
return {
presets: ["babel-preset-expo"],
plugins: [
[
"module:react-native-dotenv",
{
moduleName: "@env",
path: ".env",
},
],
],
};
};
别忘了重启expo start和ios/android重启应用。
如果你仍然得到相同的问题,那么它可能是一个缓存问题。
您可以通过运行以下命令轻松地清除babel缓存:
rm -rf node_modules/.cache/babel-loader/*
或
yarn start --reset-cache
或
expo r -c
你的babel配置中有'plugin',应该是'plugins'
yarn start --reset-cache
npm start -- --reset-cache
expo start -c
解决这个问题的一个很好的方法是替换"@env"与"react-native-dotenv"模块名之后,像这样:plugins:[ [ "module:react-native-dotenv", { moduleName:"react-native-dotenv", path:".env", }, ] ]
当你完成后,在你的屏幕示例中实现它:import { API_KEY } from "react-native-dotenv";
您可以尝试对babel.config.js文件进行以下更改,它应该可以正常工作:
module.exports = function (api) {
api.cache(true);
return {
presets: ["babel-preset-expo"],
plugins: [
[
"module:react-native-dotenv",
{
moduleName: "@env",
path: ".env",
},
],
],
};
};
确保你重新启动应用程序几次,看看变化。.env文件需要放在根目录下。