Node.js QuickStart
O TypeScript tem suporte de primeira classe para o Node.js desde o início. Veja como configurar um projeto rápido do Node.js:
Nota: muitas dessas etapas são na verdade apenas práticas comuns de configuração do Node.js
Configure um projeto do Node.js
package.json
. Início rápido:npm init -y
Adicione o TypeScript (
npm install typescript --save-dev
)Adicione o
node.d.ts
(npm install @ types / node --save-dev
)Inicie um
tsconfig.json
para opções do TypeScript com algumas opções-chave em seu tsconfig.json (npx tsc --init --rootDir src --outDir lib --esModuleInterop --resolveJsonModule --lib es6, dom --module commonjs`)
É isso aí! Abra seu IDE (por exemplo, code .
) e divirta-se. Agora você pode usar todos os módulos de Node embutidos (por exemplo, import * as fs from 'fs';
) com toda a segurança e ergonomia do desenvolvedor do TypeScript!
Todo o seu código TypeScript entra em src
e o JavaScript gerado vai em lib
.
Bônus: Live compile + run
Adicione o
ts-node
, que usaremos para compilar ao vivo + executar no nó (npm install ts-node --save-dev
)Adicionar
nodemon
que irá invocarts-node
sempre que um arquivo for alterado (npm install nodemon --save-dev
)
Agora apenas adicione um alvo script
ao seu package.json
baseado na sua entrada de aplicativo, por exemplo assumindo seu index.ts
:
Então você pode agora executar o npm start
e editar oindex.ts
:
nodemon executa novamente seu comando (ts-node)
ts-node transpila automaticamente pegando o tsconfig.json e a versão do TypeScript instalada,
O ts-node executa a saída JavaScript através do Node.js.
E quando você estiver pronto para implantar seu aplicativo JavaScript, execute npm run build
.
Criando módulos Node do TypeScript
Usando módulos escritos em TypeScript é super divertido, pois você obtém segurança em tempo de compilação e um autocomplete (essencialmente, documentação executável).
Criar um módulo TypeScript de alta qualidade é simples. Assuma a seguinte estrutura de pastas desejada para o seu pacote:
Em seu arquivo
tsconfig.json
contem
compilerOptions
:"outDir": "lib"
e"declaration": true
< Isso gera declaração e arquivos js na pasta libcontem
include: ["./src/**/*"]
< Isso inclui todos os arquivos do diretóriosrc
.
Em seu arquivo
package.json
contem"main": "lib/index"
< Isso diz ao Node.js para carregarlib/index.js
"types": "lib/index"
< Isto diz ao TypeScript para carregarlib/index.d.ts
Exemplo de pacote:
npm install typestyle
para TypeStyleUsando:
import { style } from 'typestyle';
será completamente seguro.
MAIS:
Se o seu pacote depende de outros pacotes criados por TypeScript, coloque-os em
dependencies
/devDependencies
/peerDependencies
como você faria com pacotes brutos do JS.Se o seu pacote depender de outros pacotes criados por JavaScript e você quiser usá-lo com o tipo de segurança em seu projeto, coloque seus tipos (por exemplo
@types/foo
) emdevDependencies
. Os tipos JavaScript devem ser gerenciados fora do limite dos fluxos principais do NPM. O ecossistema JavaScript quebra tipos sem versionamento semântico muito comumente, então, se seus usuários precisarem de tipos para eles, eles devem instalar a versão@types/foo
que funciona para eles.
Pontos bônus
Esses módulos NPM funcionam muito bem com o browserify (usando o tsify) ou o webpack (usando o ts-loader).
Last updated