2026年8月17日 星期一

For next.js:build時好好的,上線卻遇到package沒裝的錯誤

 最近在幫一個服務四個國家的技訓機構寫外場app(教師&學員各有不同的頁面) .裡面會有製表呈現單元.

在現場執行時,下載pdf的時候出現這樣的錯誤
-------------------------

{"level":"error","message":"attendance PDF error: Could not find Chrome (ver. 148.0.7778.97).
 This can occur if either
 1. you did not perform an installation before running the script  (e.g. npx puppeteer browsers install chrome) or
 2. your cache path is incorrectly configured 
 (which is: C:\\Users\\Administrator\\.cache\\puppeteer).
 For (2), check out our guide on configuring puppeteer 
 at https://pptr.dev/guides/configuration.","timestamp":"......." }

-------------------------

「可是明明有做npm install了啊,怎麼會有這現象」

「npm install有時會有下載失敗的錯誤只是我們沒看到」
這時要手動強制下載安裝了,沒那麼可怕,只是需要一行指令罷了

--------------------
npx puppeteer browsers install chrome
--------------------

「可是這樣只會安裝在我的目錄(C:\\Users\\MyAccount\\.cache\\puppeteer)中,log說是要放在Administrator中,如何突破這個限制?」

你問得好,接下來這招不錯哦--

1.安裝套件指定位置並安裝之:
-----------------------------
set PUPPETEER_CACHE_DIR=D:\puppeteer-cache
npx puppeteer browsers install chrome
--------------------

2.在ecosystem.config.js設定它 (當然要先切換到你git pull出來& build出來的目錄裡)
-------------------
 PUPPETEER_CACHE_DIR: 'D:\\puppeteer-cache'
--------------------

3.別忘了pm2需重啟載入執行
--------------------
pm2 delete xxxxx(你的application name)
pm2 restart ecosystem.config.js
pm2 save
--------------------
確認pm2 有把你的app執行起來就可以了

「那....我想再問一下,怎麼知道設定有吃進去」

如何驗證上述的「PUPPETEER_CACHE_DIR」有載入,只要一個執令

--------------
pm2 env 你的app id number (1、2、3.....)
--------------
這時你的console就會列出pm2所載入的資料
----------------


--------------------------------------------


以上,一起加油吧







2026年8月10日 星期一

for nex.js :什麼時候該「rm -rf .next」

 有時明明之前build的結果執行很正確
但改了設定就會出現404錯誤
這時就是砍快取的時候了
是什麼時候會用到這招(rm -rf .next) ? :

1.新建的路由檔案即使路徑正確也出現 404 錯誤——像是修改 .env.local設定中的 「NEXT_PUBLIC_BASE_PATH」 後,Turbopack 的路由清單有時會遺漏新建立的嵌套動態資料夾。

2.更改後next.config.tsbasePath. output、、和serverExternalPackages都會影響構建樹的佈局方式,並且舊配置的過時產物會殘留下來。

3.在移動或重新命名項目資料夾之後—.next/standalone它包含已解析的路徑。

總之,當症狀與你正在閱讀的程式碼完全不符時,如果檔案明顯正確但行為不符,那麼在懷疑自己之前,首先應該懷疑快取問題。

以上,一起加油吧!!