【问题标题】:dotenv production mode in nodejs not workingnodejs中的dotenv生产模式不起作用
【发布时间】:2021-11-21 12:10:50
【问题描述】:

嗨,我想将我的应用程序切换到生产模式,我使用 windows 和 Visual Studio Code,我在后端使用 expressjs,在前端使用 creat-react-app。下面是数据树

下面是dotenv来自的package.json和文件:

我想在后端将其切换到生产模式,下面是我的后端数据树:

我在 server.js 中添加脚本:

我还要在.envfile 中将NODE_ENV=development 更改为NODE_ENV=production。 最后我输入npm start,如下所示:

我进入了 localhost:5000,但失败了。有人可以建议吗?

【问题讨论】:

  • dotenv 在哪里发挥作用?
  • 您需要在 server.js 中引入 dotenv 并加载配置:require("dotenv").config();(默认情况下,调用配置将加载根目录下的 .env;如果您想加载特定的路径见dotenv config method documentation)。此外,您应该分离您的 env 文件。一种用于开发,一种用于生产,类似于CRA recommendation
  • @MattCarlotta OP 已经导入它(显示在第三张图片中)
  • 我添加了 dotenv 发挥作用的文件。即使我尝试构建一个新的 .env.development 文件并设置 NODE_ENV=production,它仍然无法正常工作。
  • 你可以试试const result = dotenv.config();console.log(result.error) 来检查错误吗?

标签: node.js reactjs dotenv


【解决方案1】:

也许您可以尝试明确设置.env 文件的路径 (https://github.com/motdotla/dotenv#path)。
类似.config({ path: path.resolve(__dirname, "../.env") })

【讨论】:

  • 嗨 @justpen,谢谢。我将 dotenv.config() 更改为 dotenv.config({ path: './.env' }),但仍然无法正常工作。
【解决方案2】:

app.use(express.json()) 之后删除app.get('/', (req, res) => { res.send('API is running') })

【讨论】:

    猜你喜欢
    • 2017-11-04
    • 2022-07-13
    • 2020-10-02
    • 1970-01-01
    • 2021-08-08
    • 2013-02-16
    • 2019-06-13
    • 1970-01-01
    • 2019-06-04
    相关资源
    最近更新 更多