如何使用npm在ES6中导入moment.js?

时间:2016-04-07 12:36:18

标签: javascript angularjs node.js ecmascript-6

我正在使用角度js和nodejs以及ES6。我想在angular js代码中导入moment.js。我做了else if

现在我可以在时间文件夹中查看moment.js文件,该文件位于节点模块内。

在我的app.js文件中,我有这样的意思

'npm install moment --save'

但是如果搜索具有日期范围的内容它在控制台中显示错误。任何人都可以帮我怎么做..?

7 个答案:

答案 0 :(得分:9)

目前,要使用ES6模块语法,您需要使用转换器,例如Babel,因为node.js和大多数浏览器还不支持ES6模块语法。

Babel和webpack非常适合这一点。 Here就是一个很好的例子:

正确配置后,您可以调用时刻:

import moment from 'moment';
console.log(moment.now());

答案 1 :(得分:6)

版本2.10.0 时刻写在ES6中:

import moment from './node_modules/moment/src/moment';
// Note the 'src/' to import the ES6 version and not the CJS build

但是现在似乎没有办法只导入一部分函数,​​你必须导入整个函数。

答案 2 :(得分:1)

使用此librairie代替: https://github.com/urish/angular-moment

加载js文件:

<script src="components/moment/moment.js"></script>
<script src="components/angular-moment/angular-moment.js"></script>

在app控制器中注入力矩依赖关系:

  var myapp = angular.module('myapp', ['angularMoment']);

答案 3 :(得分:1)

你写的代码不会工作。不是

//wont work
'import moment from moment'; this is wrong.
//this will work
import moment from 'moment';
or
import 'moment';

如果这些不起作用。然后尝试使用web-pack将时刻暴露给全局。

答案 4 :(得分:1)

这就是您要寻找的。

import moment from 'moment'
import it from 'moment/locale/it'
import { utc } from 'moment'
moment.locale('it')

您可以在此处阅读相关问题。 https://github.com/moment/moment/issues/2608

答案 5 :(得分:1)

对我有用的选项是:

import * as moment from 'moment';

答案 6 :(得分:0)

在这里,这有效:

import moment from 'moment';
window.moment = moment;