Contexto Project
- Tipo:
object
- Origem: Contexto Nullstack
- Disponibilidade: server/client
- readwrite no contexto do server
- readonly no contexto do client
Ele te dá informações sobre o manifest do app e algumas metatags.
As chaves de project
serão usadas para gerar metatags durante a renderização do lado do servidor e devem ser definidas antes que initiate
seja resolvido.
As chaves de project
serão usadas para gerar o manifest do app.
A chave disallow
será usada para gerar o robots.txt.
As chaves a seguir estão disponíveis no objeto e são suportadas como variáveis de ambiente da seguinte maneira:
- domain:
string
(NULLSTACK_PROJECT_DOMAIN
) - name:
string
(NULLSTACK_PROJECT_NAME
) - shortName:
string
(NULLSTACK_PROJECT_SHORT_NAME
) - color:
string
(NULLSTACK_PROJECT_COLOR
) - backgroundColor:
string
- type:
string
- display:
string
- orientation:
string
- scope:
string
- root:
string
- icons:
object
- favicon:
string
(url relativo ou absoluto) - disallow:
array
destring
(caminhos relativos) - sitemap:
boolean
oustring
(url relativo ou absoluto) - cdn:
string
(NULLSTACK_PROJECT_CDN
) - protocol:
string
(NULLSTACK_PROJECT_PROTOCOL
)
Além de domain
, name
and color
todas as outras chaves tem padrões sensíveis gerados com base no escopo do aplicativo.
Se você não declarar a chave icons
, Nullstack irá escanear quaisquer ícones com o nome seguindo o padrão "icon-[LARGURA]x[ALTURA].png" na sua pasta public.
A meta tag apple-touch-icon
de head
irá ser igual ao seu arquivo icon-180x180.png
.
Se a chave sitemap
estiver definida como true
o seu arquivo robots.txt irá apontar o sitemap para https://${project.domain}/sitemap.xml
.
A chave cdn
irá prefixar seu pacote de assets e ficará disponível no contexto para que você possa manualmente prefixar outros ativos.
A chave protocol
é "http" no modo de desenvolvimento e "https" e no modo produção por predefinição.
// server.js
import Nullstack from 'nullstack';
import Application from './src/Application';
const context = Nullstack.start(Application);
context.start = function() {
const { project } = context;
project.name = 'Nullstack';
project.shortName = 'Nullstack';
project.domain = 'nullstack.app';
project.color = '#d22365';
project.backgroundColor = '#d22365';
project.type = 'website';
project.display = 'standalone';
project.orientation = 'portrait';
project.scope = '/';
project.root = '/';
project.icons = {
'72': '/icon-72x72.png',
'128': '/icon-128x128.png',
'512': '/icon-512x512.png'
};
project.favicon = '/favicon.png';
project.disallow = ['/admin'];
project.sitemap = true;
project.cdn = 'cdn.nullstack.app';
project.protocol = 'https';
}
export default context;
Mais sobre o
context.start
em inicialização da aplicação.
// src/Application.njs
import Nullstack from 'nullstack';
class Application extends Nullstack {
prepare({project, page}) {
page.title = project.name;
}
}
export default Application;
💡 Você pode substituir o manifest.json gerado automaticamente e robots.txt inserindo o seu próprio arquivo na pasta public