pathpida
1.0.0

Páginas amigáveis de texto datilografado e gerador de caminho estático para o próximo.js.
Desde Pathpida> = 0.23.0 , removeu o suporte do NUXT.
Desde Pathpida> = 0.20.0 , removeu suporte para Sapper.
Usando NPM:
$ npm install pathpida npm-run-all --save-devUsando o fio:
$ yarn add pathpida npm-run-all --dev| Opção | Tipo | Descrição |
|---|---|---|
--enableStatic-s | Gerar caminho de arquivos estáticos em $path.ts | |
--ignorePath-p | string | Especifique o caminho do arquivo de padrões de ignorar. |
--output-o | string | Especifique o diretório de saída para $path.ts |
--watch-w | Ativar modo de relógio. Regenerar $path.ts | |
--version-v | Imprimir versão Pathpida. |
package.json
{
"scripts" : {
"dev" : " run-p dev:* " ,
"dev:next" : " next dev " ,
"dev:path" : " pathpida --ignorePath .gitignore --watch " ,
"build" : " pathpida --ignorePath .gitignore && next build "
}
} pages/index.tsx
pages/post/create.tsx
pages/post/[pid].tsx
pages/post/[...slug].tsx
lib/$path.ts or utils/$path.ts // Generated automatically by pathpida
ou
src/pages/index.tsx
src/pages/post/create.tsx
src/pages/post/[pid].tsx
src/pages/post/[...slug].tsx
src/lib/$path.ts or src/utils/$path.ts // Generated automatically by pathpida
pages/index.tsx
import Link from "next/link" ;
import { pagesPath } from "../lib/$path" ;
console . log ( pagesPath . post . create . $url ( ) ) ; // { pathname: '/post/create' }
console . log ( pagesPath . post . _pid ( 1 ) . $url ( ) ) ; // { pathname: '/post/[pid]', query: { pid: 1 }}
console . log ( pagesPath . post . _slug ( [ "a" , "b" , "c" ] ) . $url ( ) ) ; // { pathname: '/post//[...slug]', query: { slug: ['a', 'b', 'c'] }}
export default ( ) => {
const onClick = useCallback ( ( ) => {
router . push ( pagesPath . post . _pid ( 1 ) . $url ( ) ) ;
} , [ ] ) ;
return (
< >
< Link href = { pagesPath . post . _slug ( [ "a" , "b" , "c" ] ) . $url ( ) } />
< div onClick = { onClick } />
</ >
) ;
} ; pages/post/create.tsx
export type Query = {
userId : number ;
name ?: string ;
} ;
export default ( ) => < div /> ; pages/post/[pid].tsx
export type OptionalQuery = {
limit : number ;
label ?: string ;
} ;
export default ( ) => < div /> ; pages/index.tsx
import Link from "next/link" ;
import { pagesPath } from "../lib/$path" ;
console . log ( pagesPath . post . create . $url ( { query : { userId : 1 } } ) ) ; // { pathname: '/post/create', query: { userId: 1 }}
console . log ( pagesPath . post . create . $url ( ) ) ; // type error
console . log ( pagesPath . post . _pid ( 1 ) . $url ( ) ) ; // { pathname: '/post/[pid]', query: { pid: 1 }}
console . log ( pagesPath . post . _pid ( 1 ) . $url ( { query : { limit : 10 } , hash : "sample" } ) ) ; // { pathname: '/post/[pid]', query: { pid: 1, limit: 10 }, hash: 'sample' }
export default ( ) => {
const onClick = useCallback ( ( ) => {
router . push ( pagesPath . post . _pid ( 1 ) . $url ( ) ) ;
} , [ ] ) ;
return (
< >
< Link href = { pagesPath . post . _slug ( [ "a" , "b" , "c" ] ) . $url ( ) } />
< div onClick = { onClick } />
</ >
) ;
} ; package.json
{
"scripts" : {
"dev" : " run-p dev:* " ,
"dev:next" : " next dev " ,
"dev:path" : " pathpida --enableStatic --watch " ,
"build" : " pathpida --enableStatic && next build "
}
} pages/index.tsx
pages/post/create.tsx
pages/post/[pid].tsx
pages/post/[...slug].tsx
public/aa.json
public/bb/cc.png
lib/$path.ts or utils/$path.ts // Generated automatically by pathpida
ou
src/pages/index.tsx
src/pages/post/create.tsx
src/pages/post/[pid].tsx
src/pages/post/[...slug].tsx
public/aa.json
public/bb/cc.png
src/lib/$path.ts or src/utils/$path.ts // Generated automatically by pathpida
pages/index.tsx
import Link from "next/link" ;
import { pagesPath , staticPath } from "../lib/$path" ;
console . log ( staticPath . aa_json ) ; // /aa.json
export default ( ) => {
return (
< >
< Link href = { pagesPath . post . _slug ( [ "a" , "b" , "c" ] ) . $url ( ) } />
< img src = { staticPath . bb . cc_png } />
</ >
) ;
} ; O PATHPIDA é licenciado sob uma licença do MIT.