vue-cli 3環境変数と環境別パッケージ
3600 ワード
第一歩:環境変数概念を理解する
私たちはルートディレクトリの下のファイルで環境変数を指定できます. NODE_ENV-会は「development」、「production」または「test」の一つです.具体的な値は、アプリケーションの動作モードに依存します. BASE_URL-vue.co.nfig.jsのpublicPathオプションと一致します.つまり、あなたのアプリケーションが展開するベースパスです. 特定のモードのために準備された環境ファイル(例えば.env.production)は、一般的な環境ファイル(例えば.env)よりも優先度が高い.
パターン概念:パターンはVue CLIプロジェクトの重要な概念である.一般的にVue CLIプロジェクトには三つのデフォルトモードがあります. developmentモードは、vue-cli-service serve に使用されます. productionモードは、vue-cli-service buildとvue-cli-service test:e 2 e に使用される. testモードは、vue-cli-service test:unit に使用されます.
モードはNODE_に等しくない.ENVは、一つのモードが複数の環境変数を含むことができる.つまり、各モードはNODE_となります.ENVの値はモードの名前に設定されています.(再割り当て可能な変更)——例えばdevelopmentモードでNODE_ENVの値は「development」に設定されます.
envファイルに拡張子を追加することで、あるモードに特有の環境変数を設定できます.例えば、プロジェクトのルートディレクトリに.env.developmentというファイルを作成すると、このファイルで宣言された変数はdevelopmentモードでのみロードされます.
コマンドラインにデフォルトのモードを上書きします.例えば、ビルドコマンドに環境変数を使いたいなら、あなたのpackage.jsonスクリプトに参加してください.
Vue CLIプロジェクトでは、@vue/cli-serviceにvue-cli-serviceというコマンドがインストールされています.npm scriptsでvue-cli-serviceまたは端末からできます.modules/.bin/vue-cli-serviceがこのコマンドにアクセスします.vue-cli-service serve
それでは、テスト環境を梱包するためのモデルを作成します.
package.jsonを修正してコマンドを追加します.
私たちはルートディレクトリの下のファイルで環境変数を指定できます.
.env #
.env.local # , git
.env.[mode] #
.env.[mode].local # , git
環境変数ファイルには環境変数の「キー=値」だけが含まれています.FOO=bar
VUE_APP_SECRET=secret // VUE_APP_
カスタムVUE_を除くAPP_*変数以外にも、あなたのアプリケーションコードには常に使用可能な2つの特殊な変数があります.パターン概念:パターンはVue CLIプロジェクトの重要な概念である.一般的にVue CLIプロジェクトには三つのデフォルトモードがあります.
モードはNODE_に等しくない.ENVは、一つのモードが複数の環境変数を含むことができる.つまり、各モードはNODE_となります.ENVの値はモードの名前に設定されています.(再割り当て可能な変更)——例えばdevelopmentモードでNODE_ENVの値は「development」に設定されます.
envファイルに拡張子を追加することで、あるモードに特有の環境変数を設定できます.例えば、プロジェクトのルートディレクトリに.env.developmentというファイルを作成すると、このファイルで宣言された変数はdevelopmentモードでのみロードされます.
コマンドラインにデフォルトのモードを上書きします.例えば、ビルドコマンドに環境変数を使いたいなら、あなたのpackage.jsonスクリプトに参加してください.
"dev-build": "vue-cli-service build --mode development",
環境変数の使用:VUEのみAPP_.先頭の変数は、webpack.DefinePluginによってクライアント側のパケットに静的に埋め込まれます.すなわち、プロジェクトコードで使用されます.アプリケーションのコードでこのようにアクセスできます.console.log(process.env.VUE_APP_SECRET)
コマンド、モード、環境変数の関係を理解して、プロジェクトの中のpackage.jsonにはよく次のようなコマンドが見られます.Vue CLIプロジェクトでは、@vue/cli-serviceにvue-cli-serviceというコマンドがインストールされています.npm scriptsでvue-cli-serviceまたは端末からできます.modules/.bin/vue-cli-serviceがこのコマンドにアクセスします.vue-cli-service serve
:vue-cli-service serve [options] [entry]
:
--open
--copy URL
--mode ( :development)
--host host ( :0.0.0.0)
--port port ( :8080)
--https https ( :false)
vue-cli-service build :vue-cli-service build [options] [entry|pattern]
:
--mode ( :production)
--dest ( :dist)
--modern
--target app | lib | wc | wc-async ( :app)
--name Web Components ( :package.json "name" )
--no-clean
--report report.html
--report-json report.json
--watch
以上は2つの一般的なcli命令で、彼らがデフォルトで対応するのはそれぞれdevelopmentとproductionモードです.他のコマンドも知りたいなら、アクセスできます.https://cli.vuejs.org/zh/guid... CLIサービスそれでは、テスト環境を梱包するためのモデルを作成します.
package.jsonを修正してコマンドを追加します.
"test": "vue-cli-service build --mode test"
追加.env.testファイルはプロジェクトルートで作成します.env.testファイルは、内容がNODE_ENV='production' // ( )
VUE_APP_CURRENTMODE='test' //
VUE_APP_BASEURL='http://***.****.com:8000' //
修正項目のappiインターフェースファイルは私のプロジェクトの中で、一般的にappi.jsを作成してすべてのインターフェースurlを管理します.現地開発環境の中で代理でサーバーに接続しますので、urlをこのように書きます.`${baseUrl}/apis/v1/login`,
ファイルの先頭に環境変数でbaseUrlを変更します.let baseUrl = '';
if (process.env.NODE_ENV == 'development') {
baseUrl = ""
} else if (process.env.NODE_ENV == 'production') {
baseUrl = process.env.VUE_APP_BASEURL
} else {
baseUrl = ""
}
テスト環境のために包装する必要がある場合は、下の命令を実行して包装するだけです.npm run test