Somente o Node Server de desenvolvimento leve que serve um aplicativo da Web, abre -o no navegador, atualiza quando HTML ou JavaScript altera, injeta alterações no CSS usando soquetes e tem uma página de fallback quando uma rota não é encontrada.
BrowSerSync faz a maior parte do que queremos em um servidor de desenvolvimento leve super rápido. Ele serve ao conteúdo estático, detecta alterações, atualiza o navegador e oferece muitas personalizações.
Ao criar um spa, existem rotas que são conhecidas apenas pelo navegador. Por exemplo, /customer/21 pode ser uma rota do lado do cliente para um aplicativo angular. Se essa rota for inserida manualmente ou vinculada diretamente como ponto de entrada do aplicativo angular (também conhecido como um link profundo), o servidor estático receberá a solicitação, porque o Angular ainda não está carregado. O servidor não encontrará uma correspondência para a rota e, portanto, retornará um 404. O comportamento desejado neste caso é retornar o index.html (ou qualquer página inicial do aplicativo que definimos). O BrowSerSync não permite automaticamente uma página de fallback. Mas permite middleware personalizado. É aqui que lite-server entra.
lite-server é um invólucro personalizado simples em torno do BrowSerSync para facilitar o atendimento de spas.
O método de instalação recomendado é uma instalação local do NPM para o seu projeto:
npm install lite-server --save-dev
yarn add lite-server --dev # or yarn ... e adicione uma entrada de "script" no arquivo package.json do seu projeto:
# Inside package.json...
"scripts" : {
"dev" : " lite-server "
}, Com a entrada de script acima, você pode iniciar lite-server via:
npm run devOutras opções para a execução de binários NPM instalados localmente são discutidos nesta questão de transbordamento de pilha: Como usar o pacote instalado localmente em node_modules
Lite-Server pode ser usado com npx
npx lite-serverLite-Server também pode ser instalado globalmente, se preferir:
npm install --global lite-server
# To run:
lite-server O comportamento padrão serve da pasta atual, abre um navegador e aplica uma contração de rota HTML5 para ./index.html .
O Lite-Server usa o BrowSerSync e permite substituições de configuração por meio de um arquivo local bs-config.json ou bs-config.js em seu projeto.
Você pode fornecer um caminho personalizado para o seu arquivo de configuração via -c ou --config= Opções de tempo de execução:
lite-server -c configs/my-bs-config.js Por exemplo, para alterar a porta do servidor, os caminhos de arquivos assistidos e o diretório base do seu projeto, crie um bs-config.json na pasta do seu projeto:
{
"port" : 8000 ,
"files" : [ " ./src/**/*.{html,htm,css,js} " ],
"server" : { "baseDir" : " ./src " }
} Você também pode fornecer caminho personalizado para o seu diretório básico --baseDir= opções de tempo de execução:
lite-server --baseDir= " dist " Um exemplo mais complicado com modificações no middleware do servidor pode ser feito com um arquivo bs-config.js , que requer o module.exports = { ... }; sintaxe:
module . exports = {
server : {
middleware : {
// overrides the second middleware default with new settings
1 : require ( 'connect-history-api-fallback' ) ( {
index : '/index.html' ,
verbose : true ,
} ) ,
} ,
} ,
} ; O arquivo bs-config.js também pode exportar uma função que recebe a instância Lite-Server BrowSerSync como seu único argumento. Embora não seja necessário, o valor de retorno desta função será usado para estender a configuração padrão do Lite-Server.
module . exports = function ( bs ) {
return {
server : {
middleware : {
// overrides the second middleware default with new settings
1 : require ( 'connect-history-api-fallback' ) ( {
index : '/index.html' ,
verbose : true ,
} ) ,
} ,
} ,
} ;
} ;Nota: Lembre -se de que, ao usar o middleware, o módulo de middleware específico deve ser instalado em seu projeto. Para o exemplo acima, você precisará fazer:
npm install connect-history-api-fallback --save-dev... Caso contrário, você receberá um erro semelhante a:
Error: Cannot find module ' connect-history-api-fallback ' Outro exemplo: para remover um dos Middlewares padrão, como connect-logger , você pode definir seu índice de matriz como null :
module . exports = {
server : {
middleware : {
0 : null , // removes default `connect-logger` middleware
} ,
} ,
} ;Uma lista de todo o conjunto de opções BrowSerSync pode ser encontrada em seus documentos: http://www.browshersync.io/docs/options/
Ao usar lite-server para executar testes de ponta a ponta, podemos não querer registrar verbosamente. Também podemos querer impedir que o navegador seja aberto. Essas opções no bs-config.js silenciam todas as explorações do lite-server :
open: false
logLevel: "silent" ,
server : {
middleware : {
0 : null
}
} O CSS com o Angular 2 é incorporado, mesmo que o BrowSerSync detecte a alteração do arquivo para CSS, ele não injeta o arquivo via soquetes. Como solução alternativa, injectChanges padrão para false .
npm installgit checkout -b new-featuregit commit -am 'Added a feature'npm testgit push origin new-featureCódigo liberado sob a licença do MIT.