reactjs - 生产中的 Dotenv-webpack?

标签 reactjs heroku webpack dotenv

我正在尝试使用 dotenv-webpack 插件。这在本地效果很好。但是当我部署到 Heroku 时失败了。

我已经根据这个 git issue 遵循了建议,但仍然有问题。

我的 webpack 配置如下所示:

const path = require('path');
const Dotenv = require('dotenv-webpack');

module.exports = {
  context: path.join(__dirname, '/src'),

  entry: {
    javascript: './js/index'
  },

output: {
  filename: 'bundle.js',
  path: path.join(__dirname, '/dist'),
},

resolve: {
  alias: {
    react: path.join(__dirname, 'node_modules', 'react')
  },
  extensions: ['.js', '.jsx'],
},

module: {
  rules: [
  {
    test: /\.jsx?$/,
    exclude: /node_modules/,
    loaders: ['babel-loader'],
  },
  {
    test: /\.html$/,
    loader: 'file?name=[name].[ext]',
  },
 ],
},
plugins: [
  new Dotenv({
    path: path.resolve(__dirname,'.env')
  }),
 ]
};

我期望 dotenv 插件的编写方式如上,它将在构建时解析我的 .env 文件(位于项目的根目录,以及 webpack.config),从而使我的项目能够访问 env vars。相反,环境变量是 undefined ,在 Heroku 中。我在 Heroku 中设置了一个 env var。 Key 设置为类似 SECRET_KEY 的内容。值设置为类似 123456 的值。谁能给我一些见解?

最佳答案

我不使用 Heroku,也没有尝试过。但我知道如果你在 Heroku 仪表板上定义了变量,那么这些变量就是系统变量,所以你需要使用选项 systemvars: true “dotenv-webpack”。

作为声明(我再说一遍,我从未使用过 Heroku):
所有这一切都取决于 Heroku 部署的工作方式,如果您在 Heroku 内部构建应用程序(您在 Heroku 内部调用 Webpack)那么它可以工作,但是如果您将构建的应用程序发送到 Heroku(您不在 Heroku 内部调用 Webpack)那么它不起作用。

关于reactjs - 生产中的 Dotenv-webpack?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54261938/

相关文章:

javascript - React - 获取所选元素的值

reactjs - 新手学习 react 的一般问题

javascript - 多重数据过滤

ruby-on-rails - heroku 多个子域与 ssl 可能吗?

deployment - Heroku 部署流程到底是如何运作的?

webpack - 使用 webpack sass-loader 时如何保留原始 url()

javascript - react : TypeError: Cannot read property 'addEventListener' of null

javascript - 使用 webpack.mix 编译 js 文件时,mix.scripts 在 laravel 5.5 上不起作用

reactjs - 导入自定义 npm 包会导致空/空对象

ruby-on-rails - Heroku Rails 4 设计错误