Skip to content

Commit

Permalink
feat(nitro): support netlify zero-config deployments (#175)
Browse files Browse the repository at this point in the history
  • Loading branch information
danielroe authored Jun 14, 2021
1 parent 840bf5f commit ced37c2
Showing 1 changed file with 21 additions and 1 deletion.
22 changes: 21 additions & 1 deletion src/presets/netlify.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,31 @@
import { join } from 'upath'
import { existsSync, readFile, writeFile } from 'fs-extra'
import consola from 'consola'
import { extendPreset } from '../utils'
import { NitroPreset } from '../context'
import { NitroContext, NitroPreset } from '../context'
import { lambda } from './lambda'

export const netlify: NitroPreset = extendPreset(lambda, {
output: {
dir: '{{ _nuxt.rootDir }}/netlify/functions',
publicDir: '{{ _nuxt.rootDir }}/dist'
},
hooks: {
async 'nitro:compiled' (ctx: NitroContext) {
const redirectsPath = join(ctx._nuxt.rootDir, '_redirects')
let contents = '/* /.netlify/functions/server 200'
if (existsSync(redirectsPath)) {
const currentRedirects = await readFile(redirectsPath, 'utf-8')
if (currentRedirects.match(/^\/\* /m)) {
consola.info('Not adding Nitro fallback to `_redirects` (as an existing fallback was found).')
return
}
consola.info('Adding Nitro fallback to `_redirects` to handle all unmatched routes.')
contents = currentRedirects + '\n' + contents
}
await writeFile(redirectsPath, contents)
}
},
ignore: [
'netlify.toml',
'_redirects'
Expand Down

0 comments on commit ced37c2

Please sign in to comment.