Я пытаюсь предоставить переменные env другим моим файлам js. Итак, у меня есть другие файлы JS, которые я структурировал так, чтобы api и модель жили в собственном файле и папке, и когда я захочу их использовать, я импортирую их, используя
import Auth from '@services/api/auth'
И в этом файле я хотел бы показать переменные env, например, как я могу это сделать в файле сценария компонентов vue, например
<script>
import login from '@/components/view/login/login'
export default {
components: {
login
},
created () {
console.info(process.env.API_BASE_URL)
}
}
</script>
Итак, я использую стандартный Vue 2.5 с webpack 3.1, и в настоящее время я могу вызвать process.env.API_BASE_URL внутри файла .vue, но если я попытаюсь вызвать это в импортированном файле .js, я получу undefine.
Нравится
import Axios from 'axios'
export default {
login (username, password) {
return new Promise((resolve, reject) => {
console.info(process.ENV.API_BASE_URL)
let url = process.ENV.API_BASE_URL + 'oauth2/token'
let body = {
username: username,
password: password,
scope: process.ENV.API_SCOPE.LOGIN.scope,
grant_type: process.ENV.API_SCOPE.LOGIN.grant_type
}
let header = {
auth: {
username: process.ENV.API_CLIENT.LOGIN.username,
password: process.ENV.API_CLIENT.LOGIN.password
}
}
return Axios.post(url, body, header)
.then(res => {
resolve(res)
})
.catch(err => {
reject(err)
})
})
}
}
возможно дублирование этого stackoverflow.com/questions/37656592/…, и вы можете проверить эту статью medium.com/@justintulk/…
@gvk да, я уже пробовал это. Шьям Бабу, я уже читал эту статью, но это приводит к использованию пакета dotenv с файлом .env, который я не хочу использовать, потому что vuejs с веб-пакетом уже имеет собственную настройку среды, а также с использованием .env я не могу хранить объект в этом файле
@gvk да, я попробовал еще раз, и теперь он работает ... из-за моего предыдущего утверждения я вызывал вложенный объект, поэтому он не работал. Спасибо чувак
Прохладный. Но как бы то ни было, вам действительно следует обновить шаблон веб-пакета, чтобы использовать dotenv [npmjs.com/package/dotenv] вместо стандартного, загружающего env из файлов в каталоге config/. Поскольку этот каталог конфигурации может быть передан в систему управления версиями, он как бы упускает из виду наличие переменных среды. Объекты, которые вы хотите получить из env, должны передаваться как отдельные переменные. Например, env.API_CLIENT.LOGIN.username может быть просто env.API_LOGIN и т. д.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Разве внутри модуля не должно быть
process.env, а неprocess.ENV?