在过去的2天里,我一直在努力让我的项目建立在一个DO应用程序上。有趣的是,在项目中没有任何改变,它突然开始出现错误:
[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] │
我们所要做的就是重新启动(强制重新部署和构建),然后它开始抛出这个错误。
与此同时,我们的暂存分支工作得很好,两者之间的包版本是相同的。
"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",
}
注:我甚至试图恢复到以前已经成功部署的旧的工作提交,但它也失败了。
问题是你可能在你的环境变量中手动设置NODE_ENV
为production
,这导致yarn
忽略你的devDependencies,只安装你的主要依赖(因此为什么它不能找到typescript,通常安装为devDependency)
如果你需要一个构建时的环境变量,让你的捆绑器知道它是一个生产环境,那么我建议使用不同的名称,如APP_ENV
或类似的东西,这样纱线不会看它,它将始终包括你的devDependencies,而构建你的应用程序在DO应用程序平台。
对于运行时,您可以使用cross-env
将NODE_ENV
设置为production
。