gpt4 book ai didi

node.js - process.env 从 docker-compose 未定义

转载 作者:太空宇宙 更新时间:2023-11-03 21:51:19 25 4
gpt4 key购买 nike

我在带有 webpack 的 Nodejs 中有一个脚本,我想在其中使用 docker-compose 中的环境变量,但每次变量都是未定义

这是 docker-compose 的一小部分:

container:
image: "node:8-alpine"
user: "node"
working_dir: /home/node/app
environment:
- NODE_ENV=development
volumes:
- ./project:/home/node/app
- ./conf:/home/node/conf
command: "yarn start"

我有这个 webpack 配置:

const path = require('path');
const TerserPlugin = require('terser-webpack-plugin');
const DefinePlugin = require('webpack').DefinePlugin;

module.exports = {
entry: './src-js/widget.js',
mode: process.env.NODE_ENV || 'development',
output: {
filename: 'widget.js',
path: path.resolve(__dirname, 'public')
},
optimization: {
minimizer: [new TerserPlugin()]
},
plugins: [
new DefinePlugin({
ENV: JSON.stringify(process.env.NODE_ENV)
})
]
};

在我的 Node 脚本中,我想使用 NODE_ENV 变量,因此我尝试了所有这些解决方案,但每次都是未定义

console.log(process.env.NODE_ENV);
console.log(ENV);
console.log(process.env); //is empty

从docker容器中,我尝试打印环境变量,其中有NODE_ENV,但我无法将其使用到 Node 文件中。为什么?

通常我使用yarn buildyarn watch来重新编译它

最佳答案

在你的 webpack 配置中尝试一下:

new DefinePlugin({
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV)
})

此外,官方文档有一个snippet关于它。

关于node.js - process.env 从 docker-compose 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55277860/

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