Nuxt 2 또는 3에서 .env 변수를 사용하는 방법
프로젝트 루트에 .env 파일이 있으며, nuxt 구성에서 변수를 사용하여 다음과 같이 ReCaptcha를 구성한다.
import dotenv from 'dotenv'
dotenv.config()
export default {
modules: [
['@nuxtjs/recaptcha', {
siteKey: process.env.RECAPTCHA_SITE_KEY,
version: 3,
size: 'compact'
}],
]
}
다음과 같은 .env에서:
RECAPTCHA_SITE_KEY=6L....
그러나 애플리케이션은 항상 콘솔 로그 오류로 인해 실패함:
다시 캡차 오류:제공된 키 없음
ReCaptcha 키를 직접 하드 코드화할 때:siteKey: 6L....앱이 작동하기 시작하니, nuxt.config에서 .env 소품을 읽는 것이 문제인 것 같다.
어떻게 고치는지 알기나 해?
편집: @pxtu 권장 사항과 예시를 통해 https://www.npmjs.com/package/@nuxtjs/propertcha를 업데이트해 보았다.
따라서 nuxt.config도 작동하지 않음:
export default {
modules: [
'@nuxtjs/recaptcha',
],
publicRuntimeConfig: {
recaptcha: {
siteKey: process.env.RECAPTCHA_SITE_KEY,
version: 3,
size: 'compact'
}
}
}
Nuxt 버전이 2.13 이상이면 사용할 필요가 없음@nuxtjs/dotenv이미 프레임워크에 백업되어 있기 때문에 비슷한 것.
일부 변수를 사용하려면.env프로젝트의 루트에 파일을 저장하십시오.이것은 git으로 무시되어야 한다.그런 다음 키 몇 개를 입력하면 된다.
PUBLIC_VARIABLE="https://my-cool-website.com"
PRIVATE_TOKEN="1234qwer"
당신 안에nuxt.config.js사용 사례에 따라 두 개의 객체에 입력해야 한다.publicRuntimeConfig또는privateRuntimeConfig:
export default {
publicRuntimeConfig: {
myPublicVariable: process.env.PUBLIC_VARIABLE,
},
privateRuntimeConfig: {
myPrivateToken: process.env.PRIVATE_TOKEN
}
}
차이점:publicRuntimeConfig기본적으로 어디에서나 사용할 수 있는 반면privateRuntimeConfigSSR 동안만 사용할 수 있다(키 한 개는 브라우저로 발송되지 않은 경우에만 비공개 상태를 유지할 수 있다.
에 대한 일반적인 사용 사례.privateRuntimeConfig빌드 프로세스 동안 또는 빌드 프로세스 동안 사용하기 위함(기존재yarn build또는yarn generate앱을 헤드리스 CMS의 API 호출로 채우기 위해.
자세한 내용은 이 블로그 게시물을 참조하십시오. https://nuxtjs.org/blog/moving-from-nuxtjs-dotenv-to-runtime-config/
- 그러면, 당신은 그것을 어느 곳에도 접근할 수 있을 것이다.
.vue에 직접 제출하다.
this.$config.myPublicVariable
- Nuxt's에 접속하면
/plugins또한, 이 구문에서는
export default ({ $axios, $config: { myPublicVariable } }) => {
$axios.defaults.baseURL = myPublicVariable
}
- Nuxt 모듈 또는 키에 이 변수가 필요한 경우
nuxt.config.js파일, 직접 작성
process.env.PRIVATE_TOKEN
경우에 따라 구문이 약간 다를 수 있으며, 이 경우 Nuxt 모듈 설명서를 참조하십시오.
// for @nuxtjs/gtm
publicRuntimeConfig: {
gtm: {
id: process.env.GOOGLE_TAG_MANAGER_ID
}
},
PS: 사용할 경우target: server(기본값), 다음 작업을 수행할 수 있음yarn build그리고yarn start애플리케이션을 프로덕션에 배포하십시오.그런 다음 원하는 환경 변수를 변경하고yarn start다시. 재건할 필요가 없을 것이다.따라서 RuntimeConfig라는 이름이 붙었다!
Nuxt3 업데이트
여기서 언급한 바와 같이 Nuxt3는 다음과 같이 사용할 수 있다.
nuxt.config.js
import { defineNuxtConfig } from 'nuxt3'
export default defineNuxtConfig({
publicRuntimeConfig: {
secret: process.env.SECRET,
}
}
모든 구성 요소에서
<script setup lang="ts">
const config = useRuntimeConfig()
config.secret
</script>
아주 쉽다.axios/nuxt 예시 제공
를 '수능의'에서 정의하라.
.env파일:baseUrl=http://localhost:1337nuxt.config.js에 변수를 invide-object에 추가(Axios 구성에서 사용):
export default {env: {baseUrl: process.env.baseUrl},axios: {baseURL: process.env.baseUrl},}다음과 같은 파일에 환경 변수를 사용하십시오.
console.log(process.env.baseUrl)
console.log(process.env)는 {}을(를) 출력하지만 console.log(process.env.baseUrl)는 여전히 값을 출력한다는 점에 유의하십시오!
또한 당신은 또한 그것을 사용할 수 있다.envNuxt nxt.config.js가 있는 속성:
export default {
// Environment variables
env: {
myVariable: process.env.NUXT_ENV_MY_VAR
},
...
}
그런 다음 플러그인에서 다음을 수행하십시오.
const myVar = process.env.myVariable
참조URL: https://stackoverflow.com/questions/67703133/how-to-use-env-variables-in-nuxt-2-or-3
'programing' 카테고리의 다른 글
| 첫 번째 앱 로드 시 네이티브 헤더/하단 탭바 점프 반응 (0) | 2022.04.03 |
|---|---|
| Vuetify 버튼의 텍스트 색상을 변경하는 방법 (0) | 2022.04.03 |
| 과학적 표기법 없이 정밀한 방법으로 숫자 배열로 예쁘게 인쇄하는 방법? (0) | 2022.04.03 |
| Reducx 라우터 - "Dispatch가 정의되지 않음" (0) | 2022.04.02 |
| 나는 국가를 위한 일반적인 환원기를 만들었고, 언제 사용해야 하는지, 언제 사용하지 말아야 하는지. (0) | 2022.04.02 |