Aurelia CLI y TypeScript y MomentJS
No consigo que Aurelia (CLI) y TypeScript & MomentJS trabajen juntos. He visto soluciones para los problemas de Aurelia y Moment pero no usan la CLI de Aurelia.
Esto es lo que estoy haciendo en este momento:
Nuevo proyecto de Aurelia con Aurelia CLI:
au new
Selecciono TypeScript en lugar de Babel.
Instalar momento
npm install moment --save
Esto instala Moment 2.4.1. Puedo encontrarlo (incluido el momento.d.ts) en node_modules.
Editar aurelia.json
Agrego "momento" a "dependencias":
Use Moment en app.ts
Los problemas comienzan cuando ahora trato de importar Moment en app.ts.
import { moment } from 'moment';
Esto da error: "Módulo" o: / dev / spikes / amoment / node_modules / moment / moment "no ha exportado ningún miembro 'moment'
Cambiar la carcasa corrige este error:
import { Moment } from 'moment';
Pero en este punto estoy totalmente atascado. Cuando trato de usar moment (o Moment), siempre recibo el error "No se puede encontrar el nombre 'moment'. Aquí está el app.ts actual que da el error" No se puede encontrar el nombre 'moment' ":
import { Moment } from 'moment';
export class App {
message = 'Hello World!';
hello() : string {
return moment.format();
}
}
La importación parece ser el problema. ¿Alguna idea de cómo solucionar esto?
Actualizar
Después de arreglar app.ts para que se vea como sigue, la cosa ahora se compila. Pero da "TypeError: No se puede leer la propiedad 'formato' de indefinido" cuando se ejecuta.
import { Moment } from 'moment';
import { autoinject } from "aurelia-framework";
export class App {
message: string;
moment: Moment;
constructor(moment: Moment) {
this.moment = moment;
this.message = this.moment.format('MMMM Do YYYY, h:mm:ss a')
}
}
Actualizar
Según el último error, parece que autoinject no funcionaba sin @autoinject. Así que agregó eso y el error cambia: "TypeError: moment.format no es una función".
import { Moment } from 'moment';
import { autoinject } from "aurelia-framework";
@autoinject
export class App {
message: string;
moment: Moment;
constructor(moment: Moment) {
this.message = moment.format();
}
}