Tengo un problema bastante simple, pero por mi vida no puedo averiguar cómo hacerlo funcionar, he pasado horas buscando en línea ...
Estoy usando la biblioteca obtenida para trabajar con una API meteorológica aquí está el código a continuación:
import got from 'got'; import dotenv from 'dotenv'; dotenv.config(); class WeatherApi { #getApiKey = () => process.env.WEATHER_API; fetchWeatherData = (city, callback) => { const apiKey = this.#getApiKey(); const apiUrl = `http://api.openweathermap.org/data/2.5/weather?units=metric&q=${city}&appid=${apiKey}`; got(apiUrl).then((response) => { const weatherData = JSON.parse(response.body); callback(weatherData) }); } } export { WeatherApi }El código funciona perfectamente cuando lo ejecuto con el nodo, sin embargo, cuando intento ejecutar pruebas con Jest , obtengo lo siguiente:
C:\Users\alfon\OneDrive\Documents\Coding\JavaScript\thermostat\node_modules\got\dist\source\index.js:1 ({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,jest){import create from './create.js'; ^^^^^^ SyntaxError: Cannot use import statement outside a module > 1 | import got from 'got'; | ^ 2 | import dotenv from 'dotenv'; 3 | dotenv.config(); 4 | at Runtime.createScriptFromCode (node_modules/jest-runtime/build/index.js:1728:14) at Object.<anonymous> (weather_api.js:1:1)Mi problema es que parece que solo la biblioteca obtenida tiene problemas para importarse, si la elimino y ejecuto la biblioteca Jest dotenv se carga normalmente. No tengo idea de lo que me estoy perdiendo aquí ...
Terminé probando una versión anterior de got (11.8.2), que ejecuta ES35 y no da ningún problema. Supongo que tal vez la versión más nueva de got que salió hace un mes está causando algunos problemas potenciales.
npm install got@11.8.2