ウェブとdotenvと角度ユニバーサルenv変数
7382 ワード
先週は何らかの理由で仕事を止めました.変数は予想通りインポートされませんでした.
これはあなたのために動作しない場合は、ここでは、WebPackバージョンです.Webpackを使うのは、実際にビルドプロセスを遅くしてしまうのでしょうか?それは避けるべきですか?コメントしますか?私は、あなたが可能なときにどんな外部の依存関係も避けるべきであると考えています、しかし、これは無名242479142を使います.
角度ユニバーサルによる指示は、ここにあります.私は、他の人がいつものように複雑になっているように見えたので、私はGoogleで異なる結果をコンパイルしなければなりませんでした.対角 ͜ʖ ͡°)
常にTypeScriptを使用してください!これはすべてのJS開発会社のルールである必要があります.これをルートディレクトリに置きます.
環境.供述する
プロジェクトを置き換えます.建築家.ビルド.ビルダー
から:
から:
から:
から:
プロジェクト.建築家.サーバ.オプション
プロジェクト.建築家.ビルド.オプション
プロジェクト.建築家.テスト.オプション
あなたの変数をいつものように
J
これはあなたのために動作しない場合は、ここでは、WebPackバージョンです.Webpackを使うのは、実際にビルドプロセスを遅くしてしまうのでしょうか?それは避けるべきですか?コメントしますか?私は、あなたが可能なときにどんな外部の依存関係も避けるべきであると考えています、しかし、これは無名242479142を使います.
角度ユニバーサルによる指示は、ここにあります.私は、他の人がいつものように複雑になっているように見えたので、私はGoogleで異なる結果をコンパイルしなければなりませんでした.対角 ͜ʖ ͡°)
依存関係のインストール
npm i -D @angular-builders/custom-webpack
npm i -D @angular-builders/dev-server
npm i -D dotenv
カスタムウェブパックを作成します。設定。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ファイルとしてインポートできます.環境ファイルの編集
環境.供述する
export const environment = {
production: true,
firebase: JSON.parse(process.env.FIREBASE_API_PROD as string)
};
あなたがちょうどストリングを輸入しているならば、あなたはprocess.env
をここで必要としません.すべての環境バージョンファイルで同じことをします.角度を編集します。JSON
プロジェクトを置き換えます.建築家.ビルド.ビルダー
から:
@angular-devkit/build-angular:browser
です.@angular-builders/custom-webpack:browser
プロジェクトを置き換えます.建築家.サーブ.ビルダーから:
@angular-devkit/build-angular:dev-server
です.@angular-builders/custom-webpack:dev-server
プロジェクトを置き換えます.建築家.テスト.ビルダーから:
@angular-devkit/build-angular:karma
です.@angular-builders/custom-webpack:karma
プロジェクトを置き換えます.建築家.サーバ.ビルダーから:
@angular-devkit/build-angular:server
です.@angular-builders/custom-webpack:server
以下を追加します.プロジェクト.建築家.サーバ.オプション
プロジェクト.建築家.ビルド.オプション
プロジェクト.建築家.テスト.オプション
"customWebpackConfig": {
"path": "./custom-webpack.config.ts"
},
クリエイトユア.envファイル
あなたの変数をいつものように
JSON.parse()
ファイルに入れてください.FIREBASE_API_DEV={"apiKey":"..." ...}
FIREBASE_API_PROD={...}
を行います.あなたが例を必要とするならば、ここではmy repositoryです.J
Reference
この問題について(ウェブと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