@nadeshikon/plugin-nextjs
Version:
Run Next.js seamlessly on Netlify
44 lines (39 loc) • 1.28 kB
text/typescript
import { existsSync } from 'fs'
import { join, resolve } from 'path'
import { shouldSkip } from './utils'
const findDistDir = (publish) => {
// In normal operation, the dist dir is the same as the publish dir
if (!shouldSkip()) {
return publish
}
// In this situation, the user has disabled the next-runtime, which means that they might be using next export,
// so we'll look in a few places to find the site root. This allows us to find the .next directory.
for (const root of [resolve(publish, '..'), resolve(publish, '..', '..')]) {
if (existsSync(join(root, 'next.config.js'))) {
return join(root, '.next')
}
}
return null
}
export const restoreCache = async ({ cache, publish }) => {
const distDir = findDistDir(publish)
if (!distDir) {
return
}
if (await cache.restore(join(distDir, 'cache'))) {
console.log('Next.js cache restored.')
} else {
console.log('No Next.js cache to restore.')
}
}
export const saveCache = async ({ cache, publish }) => {
const distDir = findDistDir(publish)
if (!distDir) {
return
}
if (await cache.save(join(distDir, 'cache'))) {
console.log('Next.js cache saved.')
} else {
console.log('No Next.js cache to save.')
}
}