The problem is that if you don't tell SystemJS that you want to use the moment-timezone-with-data-2010-2020.min.js file, it will load moment/index.js , which requires tz data.
The following are steps to set up and use correctly:
npm install moment moment-timezone --save and npm install @types/moment @types/moment-timezone --save-dev
In my component, I am doing import * as moment from 'moment-timezone'; .
You will configure SystemJS , for example:
... packages: { 'moment-timezone': { main: 'builds/moment-timezone-with-data-2010-2020.min.js', defaultExtension: 'js' } }
Then you can use console.log(moment.tz.guess());
For angular2-seed, you do this:
project.config.ts :
... constructor() { this.NPM_DEPENDENCIES = [ ...this.NPM_DEPENDENCIES, {src: 'moment', inject: 'libs'}, {src: 'moment-timezone/builds/moment-timezone-with-data-2010-2020.min.js', inject: 'libs'}, ]; ... const mtzc = { main: 'builds/moment-timezone-with-data-2010-2020.min.js', defaultExtension: 'js' }; this.SYSTEM_BUILDER_CONFIG.packages['moment-timezone'] = mtzc; this.SYSTEM_CONFIG_DEV.packages['moment-timezone'] = mtzc; }
source share