我的檔案夾結構:

我的腳本:
"scripts": {
"start": "node main.mjs",
"dev": "NODE_ENV='development' npx nodemon main.mjs",
"build": "cd client && yarn build",
"install-client": "cd client && yarn",
"heroku-postbuild": "yarn install-client && yarn build"
}
client/package.json
"dependencies": {
...
},
"devDependencies": {
...
"@vitejs/plugin-vue": "^2.3.1",
"typescript": "~4.6.3",
"vite": "^2.9.1",
"vue-tsc": "^0.33.9"
}
錯誤:/bin/sh: 1: vue-tsc: not found
我的猜測是devDependencies客戶端沒有被獲取。但我沒有設定NODE_ENV,production所以不知道為什么他們沒有被取走。
把所有東西都轉移devDependencies到dependencies一個好主意嗎?
uj5u.com熱心網友回復:
這可能是由以下兩個問題之一引起的:
- Heroku 正在從生產應用程式中洗掉 devDependencies
- Heroku 正在快取之前構建的 node_modules
為了為應用程式創建更小的 slug 大小,Heroku 的 buildpack 將在構建結束時從 package.json 中洗掉 devDependencies,這樣 slug 將只包含在運行時列出的依賴項。
您可以通過運行以下命令禁用此依賴項修剪:
heroku config:set NPM_CONFIG_PRODUCTION=false
或者,對于紗線
heroku config:set YARN_PRODUCTION=false
但如果是這種情況,并且在運行時也使用了缺少的依賴項,那么它應該列在dependencies而不是devDependencies.
Heroku,默認使用npm ci而不是npm i. 因此,另一種選擇是將其切換回來:
heroku config:set USE_NPM_INSTALL=true
并禁用快取:
heroku config:set NODE_MODULES_CACHE=false
還值得檢查您是否在 package.json(在 下engines)中指定了正確的 NPM 和 Node 版本。并且您已經提交了 apackage-lock.json或yarn.lock.
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/479052.html
上一篇:v-for中的所有專案都發生了操作,但我只想對我單擊的專案運行操作
下一篇:Vue.js變數
