Setting the file. One moment.
Subchapter 20.3
references/netlify-toml.mdMarkdown4 KBView on GitHub
Configuration file for Netlify builds and deployments.
[build]
command = "npm run build"
publish = "dist"[build]
# Command to build your site
command = "npm run build"
# Directory to publish (relative to repo root)
publish = "dist"
# Functions directory
functions = "netlify/functions"
# Base directory (if not repo root)
base = "packages/frontend"
# Ignore builds for specific conditions
ignore = "git diff --quiet HEAD^ HEAD package.json"[build.environment]
NODE_VERSION = "18"
NPM_FLAGS = "--prefix=/dev/null"
[context.production.environment]
NODE_ENV = "production"Netlify auto-detects frameworks, but you can override:
[build]
command = "npm run build"
publish = ".next"[build]
command = "npm run build"
publish = "dist"[build]
command = "npm run build"
publish = "dist"[build]
command = "npm run build"
publish = "dist"[build]
command = "npm run build"
publish = "build"[[redirects]]
from = "/old-path"
to = "/new-path"
status = 301
[[redirects]]
from = "/api/*"
to = "https://api.example.com/:splat"
status = 200
# SPA fallback (for client-side routing)
[[redirects]]
from = "/*"
to = "/index.html"
status = 200[[headers]]
for = "/*"
[headers.values]
X-Frame-Options = "DENY"
X-XSS-Protection = "1; mode=block"
Content-Security-Policy = "default-src 'self'"
[[headers]]
for = "/assets/*"
[headers.values]
Cache-Control = "public, max-age=31536000, immutable"Deploy different settings per context:
# Production
[context.production]
command = "npm run build:prod"
[context.production.environment]
NODE_ENV = "production"
# Deploy previews
[context.deploy-preview]
command = "npm run build:preview"
# Branch deploys
[context.branch-deploy]
command = "npm run build:staging"
# Specific branch
[context.staging]
command = "npm run build:staging"[functions]
directory = "netlify/functions"
node_bundler = "esbuild"
[[functions]]
path = "/api/*"
function = "api"[[plugins]]
package = "@netlify/plugin-lighthouse"
[plugins.inputs]
output_path = "reports/lighthouse.html"
[[plugins]]
package = "netlify-plugin-submit-sitemap"
[plugins.inputs]
baseUrl = "https://example.com"
sitemapPath = "/sitemap.xml"[[edge_functions]]
function = "geolocation"
path = "/api/location"[build.processing]
skip_processing = false
[build.processing.css]
bundle = true
minify = true
[build.processing.js]
bundle = true
minify = true
[build.processing.html]
pretty_urls = true
[build.processing.images]
compress = true[build]
command = "npm run build"
publish = "dist"
[[redirects]]
from = "/*"
to = "/index.html"
status = 200[build]
base = "packages/web"
command = "npm run build"
publish = "dist"[[redirects]]
from = "/"
to = "/uk"
status = 302
conditions = {Country = ["GB"]}
[[redirects]]
from = "/"
to = "/us"
status = 302
conditions = {Country = ["US"]}Validate your netlify.toml:
npx netlify build --dry