mirror of
https://github.com/nuxt/nuxt.git
synced 2024-11-22 13:45:18 +00:00
refactor(nuxt)!: remove support for 404.vue
shorthand (#8809)
This commit is contained in:
parent
0cf0f59bc5
commit
10c2272f4f
@ -177,8 +177,6 @@ export default defineNuxtPlugin(async (nuxtApp) => {
|
|||||||
fatal: false,
|
fatal: false,
|
||||||
statusMessage: `Page not found: ${to.fullPath}`
|
statusMessage: `Page not found: ${to.fullPath}`
|
||||||
})])
|
})])
|
||||||
} else if (process.server && to.matched[0].name === '404' && nuxtApp.ssrContext) {
|
|
||||||
nuxtApp.ssrContext.event.res.statusCode = 404
|
|
||||||
} else if (process.server) {
|
} else if (process.server) {
|
||||||
const currentURL = to.fullPath || '/'
|
const currentURL = to.fullPath || '/'
|
||||||
if (!isEqual(currentURL, initialURL)) {
|
if (!isEqual(currentURL, initialURL)) {
|
||||||
|
@ -68,7 +68,6 @@ export function generateRoutesFromFiles (files: string[], pagesDir: string): Nux
|
|||||||
|
|
||||||
const tokens = parseSegment(segment)
|
const tokens = parseSegment(segment)
|
||||||
const segmentName = tokens.map(({ value }) => value).join('')
|
const segmentName = tokens.map(({ value }) => value).join('')
|
||||||
const isSingleSegment = segments.length === 1
|
|
||||||
|
|
||||||
// ex: parent/[slug].vue -> parent-slug
|
// ex: parent/[slug].vue -> parent-slug
|
||||||
route.name += (route.name && '-') + segmentName
|
route.name += (route.name && '-') + segmentName
|
||||||
@ -79,8 +78,6 @@ export function generateRoutesFromFiles (files: string[], pagesDir: string): Nux
|
|||||||
if (child && child.children) {
|
if (child && child.children) {
|
||||||
parent = child.children
|
parent = child.children
|
||||||
route.path = ''
|
route.path = ''
|
||||||
} else if (segmentName === '404' && isSingleSegment) {
|
|
||||||
route.path += '/:catchAll(.*)*'
|
|
||||||
} else if (segmentName === 'index' && !route.path) {
|
} else if (segmentName === 'index' && !route.path) {
|
||||||
route.path += '/'
|
route.path += '/'
|
||||||
} else if (segmentName !== 'index') {
|
} else if (segmentName !== 'index') {
|
||||||
|
@ -5,24 +5,12 @@ import { generateRouteKey } from '../src/pages/runtime/utils'
|
|||||||
describe('pages:generateRoutesFromFiles', () => {
|
describe('pages:generateRoutesFromFiles', () => {
|
||||||
const pagesDir = 'pages'
|
const pagesDir = 'pages'
|
||||||
const tests = [
|
const tests = [
|
||||||
{
|
|
||||||
description: 'should generate correct route for 404',
|
|
||||||
files: [`${pagesDir}/404.vue`],
|
|
||||||
output: [
|
|
||||||
{
|
|
||||||
name: '404',
|
|
||||||
path: '/:catchAll(.*)*',
|
|
||||||
file: `${pagesDir}/404.vue`,
|
|
||||||
children: []
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
description: 'should generate correct routes for index pages',
|
description: 'should generate correct routes for index pages',
|
||||||
files: [
|
files: [
|
||||||
`${pagesDir}/index.vue`,
|
`${pagesDir}/index.vue`,
|
||||||
`${pagesDir}/parent/index.vue`,
|
`${pagesDir}/parent/index.vue`,
|
||||||
`${pagesDir}/parent/child/index.vue`
|
`${pagesDir}/parent/child/index.vue`
|
||||||
],
|
],
|
||||||
output: [
|
output: [
|
||||||
{
|
{
|
||||||
@ -48,8 +36,8 @@ describe('pages:generateRoutesFromFiles', () => {
|
|||||||
{
|
{
|
||||||
description: 'should generate correct routes for parent/child',
|
description: 'should generate correct routes for parent/child',
|
||||||
files: [
|
files: [
|
||||||
`${pagesDir}/parent.vue`,
|
`${pagesDir}/parent.vue`,
|
||||||
`${pagesDir}/parent/child.vue`
|
`${pagesDir}/parent/child.vue`
|
||||||
],
|
],
|
||||||
output: [
|
output: [
|
||||||
{
|
{
|
||||||
@ -70,8 +58,8 @@ describe('pages:generateRoutesFromFiles', () => {
|
|||||||
{
|
{
|
||||||
description: 'should generate correct id for catchall (order 1)',
|
description: 'should generate correct id for catchall (order 1)',
|
||||||
files: [
|
files: [
|
||||||
`${pagesDir}/[...stories].vue`,
|
`${pagesDir}/[...stories].vue`,
|
||||||
`${pagesDir}/stories/[id].vue`
|
`${pagesDir}/stories/[id].vue`
|
||||||
],
|
],
|
||||||
output: [
|
output: [
|
||||||
{
|
{
|
||||||
@ -112,7 +100,7 @@ describe('pages:generateRoutesFromFiles', () => {
|
|||||||
{
|
{
|
||||||
description: 'should generate correct route for snake_case file',
|
description: 'should generate correct route for snake_case file',
|
||||||
files: [
|
files: [
|
||||||
`${pagesDir}/snake_case.vue`
|
`${pagesDir}/snake_case.vue`
|
||||||
],
|
],
|
||||||
output: [
|
output: [
|
||||||
{
|
{
|
||||||
@ -138,14 +126,14 @@ describe('pages:generateRoutesFromFiles', () => {
|
|||||||
{
|
{
|
||||||
description: 'should generate correct dynamic routes',
|
description: 'should generate correct dynamic routes',
|
||||||
files: [
|
files: [
|
||||||
`${pagesDir}/index.vue`,
|
`${pagesDir}/index.vue`,
|
||||||
`${pagesDir}/[slug].vue`,
|
`${pagesDir}/[slug].vue`,
|
||||||
`${pagesDir}/[[foo]]`,
|
`${pagesDir}/[[foo]]`,
|
||||||
`${pagesDir}/[[foo]]/index.vue`,
|
`${pagesDir}/[[foo]]/index.vue`,
|
||||||
`${pagesDir}/[bar]/index.vue`,
|
`${pagesDir}/[bar]/index.vue`,
|
||||||
`${pagesDir}/nonopt/[slug].vue`,
|
`${pagesDir}/nonopt/[slug].vue`,
|
||||||
`${pagesDir}/opt/[[slug]].vue`,
|
`${pagesDir}/opt/[[slug]].vue`,
|
||||||
`${pagesDir}/[[sub]]/route-[slug].vue`
|
`${pagesDir}/[[sub]]/route-[slug].vue`
|
||||||
],
|
],
|
||||||
output: [
|
output: [
|
||||||
{
|
{
|
||||||
@ -225,17 +213,17 @@ describe('pages:generateRoutesFromFiles', () => {
|
|||||||
{
|
{
|
||||||
description: 'should throw empty param error for dynamic route',
|
description: 'should throw empty param error for dynamic route',
|
||||||
files: [
|
files: [
|
||||||
`${pagesDir}/[].vue`
|
`${pagesDir}/[].vue`
|
||||||
],
|
],
|
||||||
error: 'Empty param'
|
error: 'Empty param'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
description: 'should only allow "_" & "." as special character for dynamic route',
|
description: 'should only allow "_" & "." as special character for dynamic route',
|
||||||
files: [
|
files: [
|
||||||
`${pagesDir}/[a1_1a].vue`,
|
`${pagesDir}/[a1_1a].vue`,
|
||||||
`${pagesDir}/[b2.2b].vue`,
|
`${pagesDir}/[b2.2b].vue`,
|
||||||
`${pagesDir}/[[c3@3c]].vue`,
|
`${pagesDir}/[[c3@3c]].vue`,
|
||||||
`${pagesDir}/[[d4-4d]].vue`
|
`${pagesDir}/[[d4-4d]].vue`
|
||||||
],
|
],
|
||||||
output: [
|
output: [
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user