Angular2 + TypeScript + moment.js => locale并不都在那里(只是'en')

我正在通过一本书教程学习TypeScriptAngularJS 2.0 :(Become_a_Ninja_with_Angular2)。

在某个时候,它解释了如何制作自己的Pipe,并通过moment.js的实现。

在我的项目所在的文件夹我做的CLI: npm install moment (通知:本书还告诉做typestypings install --save --ambient moment-node ,但即使我改变抛出一个错误 – --ambient --global ,这个错误碰巧不是使用moment.js的问题,因为我在下面描述的代码的其余部分运行)。

然后,由于以前的CLI,它会在我的项目文件夹下创build: [my project folder]\node_modules\moment

然后在[my project folder]\main.html ,我有一个<script>标签:`

 <script> System.config({ defaultJSExtensions: true, map: { ... [plenty of stuff starting with @angular].. '@angular/platform-browser-dynamic':'node_modules/@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js', 'rxjs': 'node_modules/rxjs', 'moment':'node_modules/moment/moment' } }); System.import('main'); </script> 

我的自定义pipe道如下所示:

 import { PipeTransform, Pipe } from '@angular/core'; import * as moment from 'moment'; import 'moment/../locale/fr'; @Pipe({name: 'fromNow'}) export class FromNowPipe implements PipeTransform { transform(value,args){ let mydate = moment(new Date(value)); console.log(moment.locales()); return mydate.fromNow(); } } 

正如你可以在我的自定义pipe道代码中看到的,要访问语言环境'fr' ,我必须添加import 'moment/../locale/fr ( 通过查看已有的StackOverflow解决schemefind的 )。 如果这个标签没有实现,我只能访问'en' 。 这意味着添加其他语言将需要添加import 'moment/../locale/[the locale I want available]

任何人都有任何想法如何从“moment.js”的所有locale ,只有单一的import * as moment from 'moment'; 声明?

PS:我添加到[我的项目文件夹] \ app.module.ts:

 import { FromNowPipe } from './custom_pipes/fromnow.pipe'; ... @NgModule({ ... declarations: [...,FromNowPipe], ... }) ... 

在我的一个组成部分,我有:

 [@Component({ selector: 'ns-mycomponent', template:` .. <div>{{ '2016/05/01'|fromNow }}</div>.. ` }) 

我find了一个解决方法:

根据我在问题中写的内容,在[my project folder]\main.html

  System.config({ defaultJSExtensions: true, map: { ... } }); 

我用'moment':'node_modules/moment/moment'代替了'moment':'node_modules/moment/moment' 'moment':'node_modules/moment/min/moment-with-locales.min.js'

在我的Pipe文件中,我只保留了: import * as moment from 'moment'; 在文件的开始,它的工作原理: 所有的语言都可用