Webpack 및 Dotenv를 사용하는 각도 범용 ENV 변수
이것이 작동하지 않는 경우 웹팩 버전이 있습니다. webpack을 사용하면 실제로 빌드 프로세스가 느려지는지 궁금합니다. 피해야 하는가? 아시는 분 댓글 부탁드립니다. 가능하면 외부 종속성을 피해야 한다고 생각하지만 이렇게 하면
process.env
를 사용할 수 없게 됩니다.다음은 Angular Universal에 대한 지침입니다. 평소와 같이 다른 사람들이 지나치게 복잡해 보이는 것을 간단하게 시도했기 때문에 Google에서 다른 결과를 수집해야 했습니다. ( ͡°͜ʖ ͡°)
종속성 설치
npm i -D @angular-builders/custom-webpack
npm i -D @angular-builders/dev-server
npm i -D dotenv
custom-webpack.config.ts 생성
항상 Typescript를 사용하세요! 이것은 모든 JS 개발자 회사의 규칙이어야 합니다. 이것을 루트 디렉토리에 넣으십시오.
import { EnvironmentPlugin } from 'webpack';
import { config } from 'dotenv';
config();
module.exports = {
plugins: [
new EnvironmentPlugin(['FIREBASE_API_DEV', 'FIREBASE_API_PROD'])
]
}
물론 여기에서는 Firebase 예제를 사용하고 있습니다. JSON 파일로 가져올 수 있기 때문입니다.
환경 파일 편집
environment.prod.ts
export const environment = {
production: true,
firebase: JSON.parse(process.env.FIREBASE_API_PROD as string)
};
문자열을 가져오기만 하는 경우에는 여기에
JSON.parse()
가 필요하지 않습니다. 모든 환경 버전 파일에 대해 동일한 작업을 수행합니다.Angular.json 편집
projects.architect.build.builder를 교체합니다.
에서:
@angular-devkit/build-angular:browser
에게:
@angular-builders/custom-webpack:browser
projects.architect.serve.builder를 교체합니다.
에서:
@angular-devkit/build-angular:dev-server
에게:
@angular-builders/custom-webpack:dev-server
projects.architect.test.builder를 교체합니다.
에서:
@angular-devkit/build-angular:karma
에게:
@angular-builders/custom-webpack:karma
projects.architect.server.builder를 교체합니다.
에서:
@angular-devkit/build-angular:server
에게:
@angular-builders/custom-webpack:server
다음에 추가:
프로젝트.건축가.서버.옵션
프로젝트.건축가.빌드.옵션
프로젝트.아키텍트.테스트.옵션
"customWebpackConfig": {
"path": "./custom-webpack.config.ts"
},
.env 파일 만들기
평소와 같이 변수를
.env
파일에 넣습니다.FIREBASE_API_DEV={"apiKey":"..." ...}
FIREBASE_API_PROD={...}
그리고 끝났습니다. 예가 필요한 경우 여기my repository가 있습니다.
제이
Reference
이 문제에 관하여(Webpack 및 Dotenv를 사용하는 각도 범용 ENV 변수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jdgamble555/angular-universal-env-variables-with-webpack-and-dotenv-3i6o텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)