next.js Digital Ocean -看起来你正在尝试使用TypeScript

ui7jx7zq  于 2023-04-11  发布在  Git
关注(0)|答案(1)|浏览(121)

在过去的2天里,我一直试图让我的项目在DO App上构建。有趣的是,项目中没有任何变化,突然它开始出现错误:

[2023-04-06 09:03:02] │ It looks like you're trying to use TypeScript but do not have the required package(s) installed.
[2023-04-06 09:03:02] │ 
[2023-04-06 09:03:02] │ Please install typescript by running:
[2023-04-06 09:03:02] │ 
[2023-04-06 09:03:02] │         yarn add --dev typescript
[2023-04-06 09:03:02] │ 
[2023-04-06 09:03:02] │ If you are not trying to use TypeScript, please remove the tsconfig.json file from your package root (and any TypeScript files in your pages directory).
[2023-04-06 09:03:02] │

我们所要做的就是重新启动(强制重新部署和构建),然后它开始抛出这个错误。
同时,我们的staging分支工作得很好,两者之间的包版本是相同的。

"dependencies": { 
    "next": "^12.0.7", 
    "react": "17.0.2", 
    "react-dom": "17.0.2", 
  },
  "devDependencies": { 
    "@types/node": "^18.11.9",
    "@types/react": "^18.0.33", 
    "ts-node": "^10.9.1",
    "typescript": "^5.0.3", 
  }

P.S.我甚至试图恢复到一个旧的工作提交,它在过去已经成功部署,它也失败了。

nwsw7zdq

nwsw7zdq1#

问题是,您可能在env变量中手动将NODE_ENV设置为production,这会导致yarn忽略devDependencies,只安装主依赖项(因此它无法找到typescript,通常安装为devDependency)
如果你需要一个构建时的env var,让你的bundler知道它是一个生产环境,那么我建议使用一个不同的名字,比如APP_ENV或类似的东西,这样yarn就不会看到它,并且在DO App Platform上构建你的应用时,它总是包含你的devDependencies。
对于运行时,您可以在start命令中使用cross-envNODE_ENV设置为production

相关问题