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
기본적으로 어디에서나 사용할 수 있는 반면privateRuntimeConfig
SSR 동안만 사용할 수 있다(키 한 개는 브라우저로 발송되지 않은 경우에만 비공개 상태를 유지할 수 있다.
에 대한 일반적인 사용 사례.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:1337
nuxt.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)는 여전히 값을 출력한다는 점에 유의하십시오!
또한 당신은 또한 그것을 사용할 수 있다.env
Nuxt 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 |