Este passo a passo ira configurar o Gulp para automatizar suas tarefas relacionadas ao typescript. Todo o fonte utilizado esta disponivel no projeto introducao-typescript do github.Nesse exemplo sera separado diretorios de fontes (neste exemplo, '/src') do de distribuicao ('/dist').[raiz] dist src Para iniciar o projeto, no diretorio raiz, basta executar o comando abaixo na linha de comando:npm initSelecione todas as opcoes padroes e para o entry point digite './dist/main.js'Ao terminar sera criado o arquivo packages.json na raiz da aplicacao, que facilita atualizacao e restauracao dos pacotes NPM no projeto.Instalando dependencias e configuracao basicaSera necessario instalar o Gulp CLI (de forma global), o que pode ser feito com o comando abaixo:npm install -g gulp-cliDepois instale typescript, gulp e gulp-typescript nas dependencias de projeto:npm install --save-dev typescript gulp gulp-typescriptDefina as configuracoes do typescript no arquivo tsconfig.json na raiz da aplicacao (Para ver mais informacoes de todas as opcoes consulte a documentacao).Para ver um exemplo de configuracao, veja este exemplo no github:Crie o gulpfile.js tambem na raiz da aplicacao. Ele sera responsavel pela tarefa de executar o typescriptTudo pronto! Depois basta executar o comando abaixo que ira transpilar o typescript para javascript no "target" definido do tsconfig.json.gulp TypescriptTranscriptVeja o exemplo de um arquivo TS:E o arquivo JS gerado:Configurando o BrowserifyO browserify permitira voce definir um arquivo de entrada e baseado em suas referencias sera feita a transpilacao automaticamente de toda arvore que se referencia.Instale o plugin browserify, tesify e vinyl-source-strem, para juntar todos os modulos em um unico arquivo.npm install --save-dev browserify tsify vinyl-source-streamCom a configuracao abaixo do gulpfile.js o arquivo de entrada e utilizado para buscar todas as dependencias e gerar um novo arquivo .js. Ao executar o comando abaixo e utilizado o arquivo 03BrowserUsage.ts, visto a dependencia 01Basic.ts e gerado o arquivo bundle.jsgulp browserifyJa ficou interessante, mas ainda e preciso executar o comando para transpilar. Vamos agora configurar para a compilacao acontecer automaticamente quando os arquivos tiverem alteracao com o watchify.Instale os plugins watchify e gulp-util:npm install --save-dev watchify gulp-utilPara entender o Browserify veja este link:https://benclinkinbeard.com/posts/how-browserify-works/O browserify utiliza um arquivo de entrada, para descobrir todas as dependencias e gerar um empacotamento de javascript. Ele tambem resolve o uso de recursos produtivos do Node.js que nao existem para o browser que e o uso de modulo por exemplo. O uso do require tao comum no Node.js nao existe para o javascript no browser. O Browserify implementa um tipo de require interpretando este javascript. O mesmo e feito para o exports.Desta forma voce pode criar seu javascript modularizado, ate mesmo usando o typescript, e ainda assim conseguir transformar em um javascript entendivel pelo navegador.Referenciahttps://www.typescriptlang.org/docs/handbook/gulp.html Ha uma forte corrente questionando que a utilizacao de apps em mais cenarios que deveria, e uma pagina web seria mais produtiva. Um bom exemplo e ter que baixar um app para pagar um estacionamento de um shopping que voce pode nao mais voltar a usar. A web tem amadurecido no conceito de Progressive Web Apps (PWA), que tem por ideia adicionar funcionalidades de app a uma pagina web, progressivamente, a medida que o usuario usa o aplicativo. A Udacity disponibilizou