使用 Nitro 中的 Node.js 伺服器預設配置部署到任何 Node.js 主機。
入口點
使用 Node 伺服器預設配置運行 nuxt build 時,結果將是一個啟動就緒的 Node 伺服器入口點。
node .output/server/index.mjs
範例
$ node .output/server/index.mjs
Listening on http://localhost:3000
在運行時配置默認值
此預設配置將尊重以下運行時環境變數:
module.exports = {
apps: [
{
name: 'NuxtAppName',
port: '3000',
exec_mode: 'cluster',
instances: 'max',
script: './.output/server/index.mjs'
}
]
}
使用集群模式
您可以使用 NITRO_PRESET=node_cluster 以使用 Node.js 集群模組實現多進程性能。
默認情況下,工作負載使用循環輪詢策略分發給工作程序。
靜態托管
有兩種方式可以將 Nuxt 應用部署到任何靜態托管服務:
npx nuxi generate
部署 .output/public 目錄到任何靜態托管服務或使用 npx serve .output/public 在本地預覽。
Nitro 爬取程序的工作方式:
這是重要的,因為不能自動預渲染未連接到可發現頁面的頁面。
您可以在 nuxt.config 文件中手動指定 Nitro 將在構建時提取和預渲染的路由,或者忽略不想預渲染的路由,如 /dynamic:
defineNuxtConfig({
nitro: {
prerender: {
routes: ['/user/1', '/user/2']
ignore: ['/dynamic']
}
}
})
您可以將此選項與 crawlLinks 選項結合使用,以預渲染爬取器無法發現的一組路由,例如您的 /sitemap.xml 或 /robots.txt:
defineNuxtConfig({
nitro: {
prerender: {
crawlLinks: true,
routes: ['/sitemap.xml', '/robots.txt']
}
}
})
將 nitro.prerender 設置為 true 類似於將 nitro.prerender.crawlLinks 設置為 true。
如果您不想預渲染路由,使用靜態托管的另一種方式是在 nuxt.config 文件中將 ssr 屬性設置為 false。然後,nuxi generate 命令將生成一個 .output/public/index.html 入口點和 JavaScript 包,就像經典的客戶端 Vue.js 應用程序一樣。
defineNuxtConfig({
ssr: false
})
除了 Node.js 伺服器和靜態托管服務之外,Nuxt 3 項目還可以使用幾個經過充分測試的預設配置並進行最小的配置。
您可以在 nuxt.config 文件中明確設置所需的預設配置:
export default {
nitro: {
preset: 'node-server'
}
}
或者在運行 nuxt build 時使用 NITRO_PRESET 環境變數:
NITRO_PRESET=node-server nuxt build
Nuxt 3 可以部署到多個雲提供商,只需最少的配置:
在大多數情況下,Nuxt 可以處理不是由 Nuxt 自身生成或創建的第三方內容。但是有時這樣的內容可能會引發問題,特別是 Cloudflare 的「縮小和安全選項」。
因此,您應該確保在 Cloudflare 中取消選中/禁用以下選項。否則,不必要的重新渲染或水合錯誤可能會影響您的生產應用程序。
有了這些設置,您可以確保 Cloudflare 不會將可能導致不需要的副作用的腳本注入到您的 Nuxt 應用程序中。
這就是今天的內容,希望它有助於您了解如何在不同環境中部署 Nuxt 應用程序。