一行命令,
把靜態網站交給雲端。
now 用一行命令快速部署靜態網站,支援 Firebase Hosting、Azure 與 FTP 等多種 Hosting 提供者;選好可發布目錄,部署後直接取得預設 URL。
# 在專案根目錄直接執行 $ now deploy dist → resolving source… ✓ dist/ → reading .now.json… ✓ firebase → building command… ✓ firebase deploy --only hosting ✔ Deployed! https://my-project.web.app▌
一支命令,
完成靜態網站部署。
快速完成部署
now 把不同 Hosting 提供者的部署方式整合成一致的操作介面,選擇目錄、設定平台,就能快速完成部署。
一致的命令,四個平台
無論背後是 Firebase Hosting、Azure Storage Blob、Azure Static Web Apps 或 FTP,對你都是同一支 now。換 provider 換設定,不換肌肉記憶。
設定只存非祕密
.now.json 只保存 provider、來源、base_url 這類非機密設定。token、密碼、account key 一律走環境變數或既有 CLI 登入,不進設定檔、不進 repo。
四個雲端提供者,
各自交給各自的 CLI。
now 負責選目錄與組命令,實際部署由下列 provider CLI 執行。先裝好對應 CLI、完成登入,now 就能接手。
Firebase Hosting
firebase-hosting沿用 firebase login 的既有登入狀態。設定 firebase.site 時改用 hosting:<site>。
Azure Storage Blob
azure-storage-blob不必裝 Azure CLI。給它一個 container SAS URL,now 就直接用 Azure Storage Blob REST API 把檔案上傳到 $web。
Azure Static Web Apps
azure-static-web-appdeployment token 走環境變數 SWA_CLI_DEPLOYMENT_TOKEN,不寫進設定檔。
FTP
any-website-ftp帳號密碼用 NOW_FTP_USERNAME / NOW_FTP_PASSWORD 環境變數。初版只上傳同步,不做遠端刪除。
設定、選擇、部署,
然後完成。
建立本機設定
在專案根目錄初始化 .now.json,只存非祕密設定。
選擇 provider 並填入設定
指定 provider 與對應的 project、account 或 host 等非機密欄位。
$ now config set firebase.project my-project
部署並拿到 URL
now [path] 等同 now deploy [path]。部署完成後依序挑出預設 URL 並輸出。
→ https://my-project.web.app
還沒要部署,
先讓別人看一眼。
now tunnel 在本機起一個靜態伺服器,再透過 Cloudflare Tunnel 或 Microsoft dev tunnels 把目前資料夾送上一個公開網址。免設定、不需要 .now.json,也不會上傳任何檔案。
$ now tunnel Source: ~/my-site/public Local: http://127.0.0.1:56160 Tunnel: Cloudflare Tunnel (cloudflared) Starting tunnel, press Ctrl+C to stop… Public URL: https://fuji-mba-fourth.trycloudflare.com▌
沒裝也不會卡住
兩個通道工具都沒安裝時,now 會依照你的作業系統,直接給出中文安裝指令,不會自作主張幫你裝任何東西。用 devtunnel 而還沒登入時,也會直接問你要不要現在登入。
機密檔案不會外流
本機伺服器只綁 127.0.0.1,只接受 GET,而且永遠不提供 .env、.git、node_modules、.now.json 這些排除清單裡的檔案。
Cloudflare Tunnel
cloudflared免申請帳號、免登入,裝好就能開臨時通道。沒指定時 now 會優先選它。
Microsoft dev tunnels
devtunnel需要 Microsoft Entra ID、Microsoft 或 GitHub 帳號。now 會先檢查登入狀態,未登入就引導你完成 devtunnel user login。
通道網址是公開的。任何人拿到網址都能打開,適合臨時預覽與分享,用完請按 Ctrl+C 關掉。
兩份設定檔,
一份本機、一份全域。
// .now.json · 本機設定,只存非祕密 { "provider": "firebase-hosting", "source": null, "base_url": "https://example.web.app", "default_url": null, "firebase": { "project": "my-firebase-project", "site": null }, "azure_blob": { "sas_url_env": "NOW_AZURE_BLOB_SAS_URL" }, "azure_swa": { "environment": "production" }, "ftp": { "host": "ftp.example.com", "remote_dir": "/public_html" } }
合併優先序
CLI flags > .now.json > ~/.config/now/settings.json。本機設定覆寫全域,命令列 flag 覆寫一切。
安全性
token、password、secret、account key 一律不寫進設定檔。Firebase Hosting 用 firebase login、Azure Storage Blob 的 SAS URL 放在 .env,SWA 與 FTP 用環境變數。now config set 也會擋下明顯像祕密的 key。
三種方式,
挑一個順手的。
npm 套件只含 JavaScript wrapper 與安裝邏輯。安裝時自動從 GitHub Release 下載對應平台原生 binary,並驗證 SHA-256。
預設安裝到 $HOME/.local/bin。可用 NOW_INSTALL_DIR=/usr/local/bin 覆寫。
預設安裝到 $env:LOCALAPPDATA\now\bin。可用 -InstallDir 覆寫。
下載對應平台 archive 與同名 .sha256,驗證 checksum 後解壓縮,把 now 或 now.exe 放進 PATH 內目錄。