[英]process.env returns undefined when using .env.development instead of .env
我正在使用 Webpack 進行開發。
當我使用.env
文件運行項目時,它按預期工作。
但是當我將它的文件名更改為.env.development
時, process.env
變為undefined
。
我該如何解決?
package.json
"scripts": {
"start": "webpack-dev-server --config ./webpack.config.js"
webpack.config.js
const webpack = require("webpack");
const path = require("path");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const Dotenv = require("dotenv-webpack");
module.exports = {
mode: "development",
entry: path.resolve(__dirname, "./src/index.jsx"),
devtool: "source-map",
output: {
path: path.join(__dirname, "/dist"),
filename: "bundle.js",
},
devServer: {
port: 3000,
static: true,
historyApiFallback: true,
open: true,
},
resolve: {...},
module: {...},
plugins: [
new Dotenv(),
new HtmlWebpackPlugin({
template: "public/index.html",
filename: "index.html",
favicon: "public/favicon.ico",
}),
new webpack.ProvidePlugin({
Buffer: ["buffer", "Buffer"],
}),
new webpack.ProvidePlugin({
process: "process/browser",
}),
],
};
dotenv
默認只查找.env
文件。 這是經過深思熟慮的,因為 env 文件應該是本地的,並且特定於應用程序運行的環境。您不應該為不同的環境保留不同版本的 env。
我將引用dotenv
的文檔:
不,我們強烈建議不要使用“主”
.env
文件和“環境”.env
文件,如.env.test
。 您的配置應該因部署而異,並且您不應該在環境之間共享值。在十二因素應用程序中,環境變量是精細控件,每個控件都與其他環境變量完全正交。 它們從不組合為“環境”,而是為每個部署獨立管理。 這是一個 model,隨着應用程序在其生命周期內自然擴展到更多部署,它可以平滑擴展。
但是,如果您選擇,您可以告訴dotenv-webpack
在哪里查找您的文件:
plugins: [
new Dotenv({
path: './.env.development',
}),
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.