我遵循了GitHub页面上的cli指南,但是我无法让它在我的应用程序中正常工作。
以下是我所做的:
- 安装moment:
npm install moment --save
- 安装moment ts typings:
npm install @types/moment --save
- 在我的一个组件中引入了moment:
import * as moment from 'moment';
有任何想法吗?
我遵循了GitHub页面上的cli指南,但是我无法让它在我的应用程序中正常工作。
以下是我所做的:
npm install moment --save
npm install @types/moment --save
import * as moment from 'moment';
有任何想法吗?
angular-cli
中安装第三方库变得更加简单。 (这是webpack版本,而不是systemjs版本)。{
...
"apps": [
...
"scripts": [
"../node_modules/moment/min/moment.min.js"
]
...
]
...
}
最后,在您的any.component.ts中,您可以像这样导入它:
import { Component, OnInit } from '@angular/core';
import * as moment from 'moment';
@Component({
selector: '[id=home]',
templateUrl: './home.component.html',
styleUrls: ['./home.component.scss']
})
export class HomeComponent implements OnInit {
constructor() { }
ngOnInit () {
console.log('today is', moment());
}
}
这个帖子有点老了,但这正是我需要的。Moment现在附带有一个类型定义文件,@types/moment
已经被弃用,推荐使用这个新文件。为了让moment与其他扩展自moment类型定义的库(如fullcallendar)一起工作,您还需要在tsconfig.app.json中覆盖默认模块解析。
"compilerOptions": {
...
"paths": {
"moment": [
"../node_modules/moment/moment.d.ts",
"../node_modules/moment/min/moment.min.js"
]
},
},
您还需要更新angular.json中的构建部分以包含moment:
"build": {
...,
"options": {
...
"scripts": [ "node_modules/moment/min/moment.min.js"]
},
我需要更新我的cli版本:
npm uninstall -g angular-cli @angular/cli
npm cache clear
npm install -g @angular/cli@latest
您只需要使用CommonJS语法来包含moment,而不是使用import语法。请尝试以下方法:
let moment = require('moment');
import
语法一起使用。require
,无法在客户端使用。<div>today is {{ Date.now() | amDateFormat:'LL' }}</div>
还有一些其他的管道可以使用,所有这些都在 GitHub 页面上有记录。
更新2:
从v2.10.0开始,Moment现在支持ES6语法,因此您应该能够使用任何ES6 import
语法而不是require
。
webpack
? - choz