npm i biti -g
ショ和 このレポは、 @Rola/StaticとRola Projectを支持して非推奨されています。
biti watch pages/ static/
biti
とても簡単です。ページの単一のディレクトリで動作します。これは、 biti
ページをレンダリングするために使用するプロパティとメソッドを定義およびエクスポートします。
ここの例については、 /pages
ページディレクトリとして使用しますが、何でも呼び出すことができます。
各ページでは、次のエクスポートが必要です。
pathname
文字列 - ページを表示したいパスview
- 関数 - 反応コンポーネントを返す関数PathNameプロパティは、 view
コンポーネントに渡されます。
簡単なページは次のようになるかもしれません:
import React from 'react'
export const pathname = '/about'
export function view ( { pathname } ) {
return (
< >
< h1 > About Us </ h1 >
< p > ... </ p >
</ >
)
}
ページはstate
オブジェクトをエクスポートすることもできます。これは、レンダリング時にview
関数に渡されます。
import React from 'react'
export const pathname = '/about'
export const state = {
title : 'About Us' ,
description : '...'
}
export function view ( { state , pathname } ) {
return (
< >
< h1 > { state . title } </ h1 >
< p > { state . description } </ p >
</ >
)
}
データまたは動的プロパティを必要とするルートは、上記の同じプロパティを含むページ構成を返すconfig
関数を定義できます。
これらの値は、提供された静的エクスポートとともに深く統合されます。
import React from 'react'
import { getAboutPage } from './lib/api.js'
export const pathname = '/about'
export const state = {
title : 'About Us' ,
team : [
'Eric'
]
}
export function config ( ) {
return getAboutPage ( )
. then ( res => {
return {
state : {
team : res . team
}
}
} )
}
export function view ( { state , pathname } ) {
return (
< >
< h1 > { state . title } </ h1 >
< h2 > Team </ h2 >
{ state . team . map ( name => (
< p key = { name } > { name } </ p >
) ) }
</ >
)
}
生成ページとページネーションの場合、 config
関数はページ構成の配列を返すこともできます。これらの各構成は、各ページが個別にレンダリングされるように、独自のpathname
を定義する必要があります。
次の例では、 getBlogPosts
から返された各投稿のページを生成します。
import React from 'react'
import { getBlogPosts } from './lib/api.js'
export function config ( ) {
return getBlogPosts ( )
. then ( posts => {
return posts . map ( post => ( {
pathname : `/posts/ ${ post . slug } ` ,
state : {
title : post . title ,
content : post . content
}
} ) )
} )
}
export function view ( { state , pathname } ) {
return (
< >
< h1 > { state . title } </ h1 >
< article >
{ state . content }
</ article >
</ >
)
}
biti
最小限の構成をサポートしているため、スマートデフォルトに戻ります。すべてのレンダリングタスクの構成を定義するには、 biti.config.js
ファイルを作成できます。
biti
構成ファイルの次のプロパティをサポートしています。
env
オブジェクト - このオブジェクト上のプロパティは、 process.env
に添付され、コンパイル内でグローバルに定義されます。alias
- オブジェクト - モジュールインポートエイリアス例:
module . exports = {
env : {
API_KEY : 'abcdefg'
} ,
alias : {
components : './src/components'
}
}
デフォルトでは、 biti
process.cwd()
を指す単一のエイリアス@
を定義します。このようなテンプレート全体で使用できます。
import Component from '@/src/components/Component.js'
biti
2つのコマンドしかありません: render
とwatch
。
どちらも同じパターンに従います。
biti < command > < src > < dest >
例えば:
biti render /pages /static
これらのコマンドは、グローブをsrc
プロパティとして受け入れ、個々のページまたはディレクトリを指定できるようにします。
biti render /pages/about-us.js /static
biti render /pages/ * .js /static
biti render /pages/marketing-site/ * .js /static
biti render /pages/ ** / * .js /static
biti
プログラムで使用することは、CLIの使用とほぼ同じであり、構成オブジェクトを手動で渡す必要があります。
const biti = require ( 'biti' )
const config = {
env : { ... } ,
alias : { ... }
}
const app = biti ( config )
render
とwatch
両方に次の署名があります。
app . render ( src , dest )
src
dest
のすべてのページをレンダリングします。
app . render ( '/src' , '/static' )
src
のすべてのページを監視し、ファイルの変更でdest
にレンダリングします。
app . watch ( '/src' , '/static' )
biti
インスタンスは、いくつかの役立つイベントも発生します。
単一ページをレンダリングした後。
app . on ( 'render' , page => { } )
すべてのページをレンダリングした後。視聴時に、これはすべての変更がコンパイルされ、レンダリングされた後に呼び出されます。
app . on ( 'rendered' , pages => { } )
app . on ( 'error' , error => { } )
MITライセンス©Eric Bailey