Webpack, React.js 및 dotenv에서 .env 환경 변수를 build되는 코드에서 process.env로 사용하고 싶습니다.
react dotenv에서 검색하면 "전제, create-react-app 사용"으로 지정되어 있습니다.
「우와아아아」가 되었으므로 써 보았다.
※본 기사는 React.js일 필요는 없습니다. react-create-app계 기사에의 프로파간다입니다.
더 좋은 방법이 있으면 알려주세요.
결론
webpack.config.js
const webpack = require('webpack');
const dotenv = require('dotenv');
module.exports = () => {
const env = dotenv.config().parsed;
return {
// ---------- 全て省略 ----------
plugins: [
new webpack.DefinePlugin({
'process.env': JSON.stringify(env)
})
],
};
};
전제
플러그인 설치
이번에는 dotenv를 채용
htps : // 기주 b. 코 m / t t t / doten v
yarn add -D dotenv
dotenv와 dotenv-webpack과 옵션이 있습니다.
아래와 같이 선택사항이 있어, dotenv는 서버상에서 밖에 움직이지 않는다, 즉 빌드할 때 도 있다고 생각합니다.
.env 만들기
package.json 등과 같은 계층 구조에 .env 파일을 만듭니다.
root에 없으면 dotenv로 path를 지정하지 않으면 안됩니다. (역으로 말하면 path조차 지정할 수 있으면 어디서나 좋다)
.env
SERVICE_URL="https://hogehoge.com"
API_URL="https://hoge-api.com"
NODE_ENV="development"
webpack.config.js 편집
dotenv
에서 .env
파일 가져오기 dotenv.config().parsed
에서 설정 값 얻기 webpack.DefinePlugin
를 사용하여 주입 JSON.stringify()
로 변환하지 않으면 올바르게 값을 전달할 수 없으므로 변환 DefinePlugin은 webpack.config.js 내에서 모듈에 설정값 등의 값을 주입할 수 있는 플러그인입니다.
webpack.config.js
const webpack = require('webpack');
const dotenv = require('dotenv');
module.exports = () => {
const env = dotenv.config().parsed;
return {
// ---------- 全て省略 ----------
plugins: [
new webpack.DefinePlugin({
'process.env': JSON.stringify(env)
})
],
};
};
process.env를 얻는 방법
home.tsx
import React from 'react';
const Home = (): JSX.Element => {
console.log(process.env.NODE_ENV); // -> development
return (
<div>
<p>this is Home</p>
</div>
);
};
export default Home;
참고
Environment Variables : Webpack config using DefinePlugin
Using environment variables in React
Webpack을 사용하여 JS에서도 .env하고 싶습니다.
Reference
이 문제에 관하여(Webpack, React.js 및 dotenv에서 .env 환경 변수를 build되는 코드에서 process.env로 사용하고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/HorikawaTokiya/items/c1a476ceeab0bf644311텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)