gpt4 book ai didi

javascript - Webpack 没有给环境变量赋值

转载 作者:行者123 更新时间:2023-11-30 15:21:48 25 4
gpt4 key购买 nike

我想将我的 url 设为私有(private)。

在我的 Webpack.config.js 中,我声明了一些环境变量并需要 dotenv-webpack

plugins: [
new webpack.EnvironmentPlugin([
'NODE_ENV',
'MY_URL'
]),
new Dotenv({
path: './.env', // Path to .env file (this is the default)
safe: false // load .env.example (defaults to "false" which does not use dotenv-safe)
})
]

然后我创建了一个 .env 并添加了 MY_URL=http://my.secret.url

但是当我登录 process.env.MY_URL 时,它是 undefined

我该如何解决这个问题?

最佳答案

我可以分享适合我的方法。我将所有环境变量移至 config.js 并在 package.json 中设置我当前的环境(本地或 prod),我可以使用 npm run localnpm run prod

包.json

{
"name": "workshop_butler_widget",
"version": "1.0.0",
"description": "Workshopbutler widget",
"author": "http://workshopbutler.com",
"license": "ISC",
"devDependencies": {
....
},
"scripts": {
"local": "NODE_ENV=local webpack-dev-server",
"prod": "NODE_ENV=prod webpack-dev-server"
}
}

配置.js

module.exports = {
local: {
url: 'http://local'
},
prod: {
url: 'http://prod'
}
}

webpack.config.js

const configs  = require('./config.js');
const env = process.env.NODE_ENV;
const current = (env === "local")? configs.local: configs.prod;


...

plugins: [
new webpack.DefinePlugin({
'NODE_ENV': JSON.stringify(env),
'MY_URL': JSON.stringify(current.url)
})
]

或者你可以通过'fs' npm包直接在webpack.config.js中读取.env文件

关于javascript - Webpack 没有给环境变量赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43622740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com