最近在幫一個服務四個國家的技訓機構寫外場app(教師&學員各有不同的頁面) .裡面會有製表呈現單元.
在現場執行時,下載pdf的時候出現這樣的錯誤
-------------------------
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所載入的資料
----------------
以上,一起加油吧