簡體   English   中英

docker-compose 未定義 process.env

[英]process.env undefined from docker-compose

我在帶有 webpack 的 nodejs 中有一個腳本,我想在其中使用來自 docker-compose 的環境變量,但每次變量都是undefined

這是 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_ENV 變量,所以我嘗試了所有這些解決方案,但每次都undefined

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

從 docker 容器中,我嘗試打印環境變量,其中有 NODE_ENV,但我無法將其用於節點文件。 為什么?

通常我使用yarn buildyarn watch重新編譯它

在你的 webpack 配置中試試這個:

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

此外,官方文檔有一個關於它的片段

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM