Búsqueda de sitios web

typescript - ¿Cómo proporcionar la bandera de módulo en un proyecto de VS2015?


He creado un nuevo archivo .ts en un proyecto web usando VS2015. En las propiedades del proyecto, bajo Compilación de TypeScript, he marcado Sistema de Módulos=AMD.

Entonces, al intentar escribir un módulo externo obtengo el siguiente error.

No se pueden compilar módulos a menos que se proporcione la opción '--module'.

¿Dónde proporciono la bandera del módulo?

Respuesta #1

Parece ser un error con VS2015 RTM. La configuración de TypeScript del proyecto se guarda incorrectamente en el archivo .csproj, por lo que el compilador de TypeScript no las está leyendo.

Para reparar:

  1. Haz clic derecho en el proyecto, descárgalo, luego haz clic derecho de nuevo y edítalo.
  2. Busca <TypeScriptModuleKind>, y luego localiza el elemento padre, que debería llamarse <PropertyGroup>.
  3. Busca el texto "Any CPU" en el valor del atributo Condition, cámbialo a "AnyCPU" -- es decir, elimina el espacio.
  4. Busca de nuevo y repite el cambio en caso de que tengas configuraciones de TypeScript para otras condiciones de compilación.

Tenga en cuenta que hasta que se corrija este error, necesitará editar el archivo .csproj para modificar la configuración de TypeScript. Si intenta realizar el cambio desde el área de configuración del proyecto, simplemente se generarán nuevas configuraciones en el archivo del proyecto con el valor de condición incorrecto nuevamente.

Además, es posible que esté leyendo sobre el uso de un archivo tsconfig.json en su lugar para proporcionar la configuración en VS2015. Sin embargo, parece que esta capacidad actualmente solo está implementada para el tipo de proyecto Website y no para proyectos de Aplicación Web.

Respuesta #2

No pude hacerlo funcionar. Lo que sea que cambie en la sección de TypeScript, se ignora en la compilación.

Si configuro la verbosidad en Detallada en Herramientas->Opciones->Compilar y ejecuto, puedo ver que todos mis ajustes son ignorados, incluyendo el flag -module.

Solo como solución temporal. Crea un archivo tsconfig.json en el directorio raíz. Y agrega en los eventos previos a la compilación el comando "tsc". En este caso funcionó perfectamente.

{
  "compilerOptions": {
    "module": "commonjs",
    "noImplicitAny": true,
    "removeComments": true,
    "preserveConstEnums": true,
    "sourceMap": true
  }
}

Artículos relacionados