我有一個苗條的套件專案。我想在npm run build. 目前我有一個節點容器,我習慣于開始使用npm run preview. 它作業正常,但我想使用build.
我怎么能那樣做?
參考:https : //kit.svelte.dev/docs#command-line-interface-svelte-kit-build
uj5u.com熱心網友回復:
正如@Caleb Irwin 所說,你可以跑 node ./build/index.js
NGINX 配置將如下所示:
upstream sveltekit {
server 127.0.0.1:3000;
keepalive 8;
}
server {
# listen ...
# servername ...
# root ... (folder with an index.html in case of sveltekit being crashed)
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://sveltekit;
proxy_redirect off;
error_page 502 = @static;
}
location @static {
try_files $uri /index.html =502;
}
}
(我不是 NGINX 專家,歡迎反饋以改進它)
您可能還希望通過HOST=127.0.0.1在運行之前添加環境使 SvelteKit 應用程式僅偵聽本地主機node build/index.js。這將防止從外部訪問埠 3000。
您也可以考慮使用PM2管理sveltekit程序,包括在服務器崩潰/重新啟動的情況下運行它在每個群集模式,自動重啟你的核心。
uj5u.com熱心網友回復:
如果您有一個靜態網站(即沒有端點),您應該使用@sveltejs/adapter-static@next. 它會將您應該提供的檔案放在/build目錄中。然后,您可以使用 NGINX 提供生成的頁面。一個示例 NGINX 配置將是:
server {
listen 80;
server_name test.jasonrigden.com;
root /path/to/build/directory;
index index.html;
}
如果您的站點不是靜態的,您應該@sveltejs/adapter-node在容器中使用并運行它。您可以將 NGINX 放在它前面以使用其功能(SSL、負載平衡、防火墻等)。構建站點(使用npm run build)后,您可以運行node ./build/index.js.
或者,您可以使用 Netlify、Vercel 或 Cloudflare Pages 來托管您的站點。
要了解如何更改您的配接器,請參閱檔案。
祝你好運!
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/392559.html
