tutorial ts2307 módulo error encuentra cannot typescript angular commonjs

ts2307 - Error de TypeScript en el código Angular2: no se puede encontrar el nombre ''módulo''



no se encuentra el módulo ''@ angular platform browser (10)

He definido el siguiente componente Angular2:

import {Component} from ''angular2/core''; @Component({ selector: ''my-app'', moduleId: module.id, templateUrl: ''./app.component.html'' }) export class AppComponent { }

Cuando intento compilar esto, aparece el siguiente error en la línea 5:

src/app/app.component.ts(5,13): error TS2304: Cannot find name ''module''.

Creo que module.id se refiere a la variable de module CommonJS (ver here ). He especificado el sistema de módulos CommonJS en tsconfig.json:

{ "compilerOptions": { "target": "es5", "module": "commonjs", "declaration": false, "removeComments": true, "noLib": false, "emitDecoratorMetadata": true, "experimentalDecorators": true, "sourceMap": true, "pretty": true, "allowUnreachableCode": false, "allowUnusedLabels": false, "noImplicitAny": true, "noImplicitReturns": true, "noImplicitUseStrict": false, "noFallthroughCasesInSwitch": true }, "exclude": [ "node_modules", "dist", "typings/browser.d.ts", "typings/browser", "src" ], "compileOnSave": false }

¿Cómo puedo corregir el error de TypeScript?


Dos puntos clave:

  1. Registre tipings ejecutando typings install dt~node --global --save . Entonces obtendrá la siguiente sección en typings.json :

    "globalDependencies": { "node": "registry:dt/node#6.0.0+20160608110640" }

  2. Añadir referencia al nuevo módulo. Dos caminos:

    • Agregue directamente una referencia a una dependencia en su TS

      /// <reference path="../../../typings/globals/node/index.d.ts" />

    • Agregue typings/index.d.ts en la sección de files de tsconfig.json

      { "files": [ "typings/index.d.ts" ] }

Ver más here .


En lugar de "ambiente" intente "global" por Typings 1.0

typings install dt~node --global --save


Esto es lo que hice que funcionó para mí en Eclipse (Webclipse) / Windows.

Paso 1:

Terminal

$ npm install @types/node --global --save

Paso 2:

tsconfig.json

{ "compilerOptions": { ..., "types": ["node"] } }

Además, tenía las siguientes dependencias en mi package.json, así que estaba usando el mecanografiado 2.

"devDependencies": { ... "typescript": "~2.0.10", "@types/node": "^6.0.46", ... },


Llegué a este error al portar mi proyecto de inicio rápido @ angular / angular2 en un nuevo proyecto autogenerado angular cli.

Parece que moduleId: module.id ya no es necesario.

Este es el último componente autogenerado:

import { Component } from ''@angular/core''; @Component({ selector: ''app-root'', templateUrl: ''./app.component.html'', styleUrls: [''./app.component.css''] }) export class AppComponent { title = ''app works!''; }

Eliminar todas las ocurrencias resolvió mis errores.


Lo instalé en el proyecto y trabajé bien

npm install @types/node --save-dev


Para aquellos que buscan hacer esto con Typecript 2.xy @types, esto es lo que debe hacer:

  1. npm install -D @types/node
  2. Incluya types: ["node"] en compilerOptions en su archivo tsconfig.json .

Me costó mucho encontrar las instrucciones para el paso 2.

Referencia: mecanografiado número 9184

Editar:

También puedes hacer:

  1. Incluya "typeRoots": [ "node_modules/@types" ] en compilerOptions en su archivo tsconfig.json . Esto es en lugar de la propiedad de types y tiene la ventaja de incluir automáticamente cualquier tipo @types que instale con npm.

Por ejemplo:

{ "compilerOptions": { "typeRoots": [ "node_modules/@types" ] } }

[Segunda edición] Apparently , con el último mecanografiado, solo necesita typeRoots o types si tsconfig.json no está en la raíz de su proyecto o sus tipos no están almacenados en node_modules/@types .


Para mí, tenía un tsconfig.app.json que extendía tsconfig.json . Entonces, cuando agregué "types": ["node"] en tsconfig.json , estaba siendo anulado por la propiedad "tipos" en tsconfig.app.json . Agregar "nodo" a la propiedad existente de "tipos" en tsconfig.app.config arregló.


Uso VS 2015 y tuve los mismos problemas, pero he resuelto usar:

  1. agregue el archivo typings.json del sitio web angular.io (2.0.0 final en este momento) y ejecute:

    typings install // don''t forget to install typings globally

entonces

npm install -D @types/node --save

en el package.json tengo

"devDependencies": { "@types/node": "6.0.40", ...

  1. en typings.json tengo la siguiente configuración

    { "compilerOptions": { "target": "es5", "module":"commonjs", "moduleResolution": "node", "sourceMap": true, "emitDecoratorMetadata": true, "experimentalDecorators": true, "removeComments": true, "noImplicitAny": true, "suppressImplicitAnyIndexErrors": true, "allowSyntheticDefaultImports": true, "types": [] }, "exclude": [ "node_modules", "app-dist" ] }

Tuve que agregar los tipos como una matriz vacía

  1. compruebe si hay duplicados y si moduleId: module.id todavía está resaltado

Personalmente, ps para mí es un problema extraño, porque tan pronto como excluyes los tipos dentro de typings.json, inmediatamente has resaltado ''módulo'', pero si lo dejas entrar, tienes muchos duplicados. No sé a quién culpar, a mí, mecanografiado o estudio visual :)


module.id

No se puede encontrar el módulo de nombre.

Siga los siguientes pasos para resolver este problema,

Paso 1: Instale el módulo de nodo utilizando el siguiente comando

npm i @types/node --save

Paso 2: modifique el archivo tsconfig.app.json en src/app

"types": [ "node" ]


Actualizar

Si usa Typecript 2 ^ simplemente use el siguiente comando:

npm i @types/node --save-dev

(en lugar de --save-dev puedes usar el atajo -D )

o instalarlo globalmente:

npm i @types/node --global

También puede especificar typeRoots o types en su tsconfig.json si lo desea, pero por defecto todos los paquetes visibles "@types" están incluidos en su compilación .

Versión antigua

Necesita instalar el nodo ambientDependencies. Typings.json

"ambientDependencies": { "node": "github:DefinitelyTyped/DefinitelyTyped/node/node.d.ts#138ad74b9e8e6c08af7633964962835add4c91e2",

Otra forma puede usar el administrador de typings para instalar el archivo de definición de nodo globalmente:

typings install dt~node --global --save-dev

Entonces su archivo typings.json se verá así:

"globalDependencies": { "node": "registry:dt/node#6.0.0+20160608110640" }