【问题标题】:Whenever I try to run my server via Heroku I get "Error: Cannot find module 'dotenv'"每当我尝试通过 Heroku 运行我的服务器时,我都会收到“错误:找不到模块 'dotenv'”
【发布时间】:2022-01-26 18:34:59
【问题描述】:
【问题讨论】:
标签:
node.js
typescript
heroku
【解决方案1】:
我解决了这个问题。我决定尝试卸载 dotenv 并重新安装,这很有效。显然,这与删除节点模块和 npm install 不同。
【解决方案2】:
我看到dotenv 被添加到devDependency:devDependency 是特殊的,只有当您在包含它们的package.json 上执行npm install 时才会安装。通常,您会在 devDependencies 中添加您的开发工具(如测试运行程序等),因为它们不是应用程序运行所必需的。
当我们在生产中运行应用程序时,我们使用npm install --production 安装依赖项,它只安装package.json 的dependencies 部分中提到的依赖项。这也是 Heroku 为您所做的(查看他们的 buildpack 以获取 Node.js!)
要安装devDependency,您可以:npm i -D <package name>;并安装一个生产dependency(就像你的网络框架一样express),你会做npm i -S express。
尝试运行npm i -D dotenv 并检查它是否有效(如果您只是执行npm i dotenv 也可能有效。