Búsqueda de sitios web

angularjs - ¿Cómo transpilar automáticamente TypeScript a JavaScript?


Estoy aprendiendo AngularJS2 leyendo un libro de 2015 ng-book2 pero el paquete de Node que utiliza tsc para transpilar TypeScript a JavaScript sobre la marcha está descontinuado y obsoleto:

npm WARN deprecated [email : TSD está obsoleto en favor de Typings (https://github.com/typings/typings) - consulte https://github.com/DefinitelyTyped/tsd/issues/269 para más información

. Tengo otros métodos en diferentes tutoriales, pero me pregunto si existe algún consenso sobre la mejor manera de transpilar en la máquina de desarrollo?

Aquí está el package.json que uso:

{
  "name": "ng-book2-reddit",
  "version": "1.0.0",
  "private": true,
  "scripts": {
    "clean": "rm -f ./*.js; rm -f ./*.js.map; rm -f ./intermediates/*.js; rm -f ./intermediates/*.js.map",
    "tsc": "./node_modules/.bin/tsc",
    "tsc:w": "./node_modules/.bin/tsc -w",
    "serve": "./node_modules/.bin/live-server --host=localhost --port=8080 .",
    "go": "concurrent \"npm run tsc:w\" \"npm run serve\" "
  },
  "license": "ISC",
  "dependencies": {
    "@angular/common": "2.0.0-rc.1",
    "@angular/compiler": "2.0.0-rc.1",
    "@angular/core": "2.0.0-rc.1",
    "@angular/http": "2.0.0-rc.1",
    "@angular/platform-browser": "2.0.0-rc.1",
    "@angular/platform-browser-dynamic": "2.0.0-rc.1",
    "@angular/router": "2.0.0-rc.1",
    "core-js": "2.2.2",
    "es6-shim": "^0.35.0",
    "reflect-metadata": "^0.1.3",
    "rxjs": "5.0.0-beta.6",
    "systemjs": "^0.19.6",
    "ts-helpers": "1.1.1",
    "tslint": "3.7.0-dev.2",
    "typescript": "1.9.0-dev.20160409",
    "typings": "^0.8.1",
    "zone.js": "0.6.12"
  },
  "devDependencies": {
    "concurrently": "1.0.0",
    "live-server": "0.9.0",
    "typescript": "1.7.3"
  }
}

Respuesta #1

Actualización: tsd está obsoleto, no tsc.

tsd se utiliza para instalar definiciones de tipos de TypeScript y ha sido reemplazado por typings.

tsc es el compilador de TypeScript.

Instala la utilidad de línea de comandos typings globalmente con:

npm install typings --global

Vea aquí para más instrucciones sobre el uso de tipados.

Un ejemplo de instalación de las definiciones de tipos de TypeScript de Mocha:

typings install dt~mocha --global --save

Puedes simplemente tener esto en tu packages.json bajo scripts:

    "tsc": "tsc",

Deberías crear un tsconfig.json, mira aquí un ejemplo.

Luego ejecuta en tu terminal:

npm run tsc

También tienes paquetes de typescript en dependencies y devDependencies, solo los necesitas en devDependencies.

Respuesta #2

En este caso use

npm run tsc:w

En tu package.json

"tsc:w": "./node_modules/.bin/tsc -w",