Ola*_*kin 18 javascript momentjs ecmascript-6 webpack
我正在使用带有Babel加载器的Webpack.按ES6标准编写.我已经用npm安装了时刻 - 时区和时刻 - 范围.
这两个都是moment.js插件,这两个都取决于当前的包,并导出一个单独的时刻库.所以,当我这样做
import moment from 'moment-timezone';
import moment2 from 'moment-range';
Run Code Online (Sandbox Code Playgroud)
然后我得到两个单独的参考时刻.
我该如何设定,让我可以使用瞬间与时区和范围的功能呢?
谢谢!
glo*_*tho 32
文档为此显示了CommonJS语法:
var moment = require('moment');
require('moment-range');
require('moment-timezone');
// moment() now has both range and timezone plugin features
Run Code Online (Sandbox Code Playgroud)
在ES6中:
import moment from 'moment';
import 'moment-range';
import 'moment-timezone';
Run Code Online (Sandbox Code Playgroud)
编辑
既然moment-timezone不扩展现有的进口,但确实扩展了moment自己,那么呢?
import moment from 'moment-timezone';
import 'moment-range';
Run Code Online (Sandbox Code Playgroud)
我用不同的包装解决了这个问题:moment-timezone和frozen-moment.所有邪恶的根源是moment在树的不同部分有两个依赖.就我而言,我有moment右下node_modules也里面frozen-moment的node-modules.这意味着moment-timezone并且frozen-moment正在使用不同的moment实例.
检查您是否使用彼此兼容的软件包版本,以便moment-range不需要获取其他版本的软件包moment.如果你有正确的,你应该能够这样做:
import moment from 'moment';
import momentTimezone from 'moment-timezone';
import momentRange from 'moment-range';
console.log(moment === momentTimezone === momentRange); // logs 'true'
Run Code Online (Sandbox Code Playgroud)
请记住,仅用于测试它的正确设置,您应该像在glortho的答案中那样使用它:
import moment from 'moment';
import 'moment-timezone';
import 'moment-range';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19182 次 |
| 最近记录: |