diff --git a/scripts/gulp/tasks/bundle/bundle.ts b/scripts/gulp/tasks/bundle/bundle.ts index fc4503f791..fed2ee37be 100644 --- a/scripts/gulp/tasks/bundle/bundle.ts +++ b/scripts/gulp/tasks/bundle/bundle.ts @@ -6,49 +6,30 @@ const rollup = require('gulp-rollup'); const rename = require('gulp-rename'); const replace = require('gulp-replace'); -task('bundle', ['bundle:umd:theme', 'bundle:umd:auth', 'bundle:umd:security']); -task('bundle:umd:theme', bundleUmdTheme); -task('bundle:umd:auth', bundleUmdAuth); -task('bundle:umd:security', bundleUmdSecurity); +task('bundle', [ + 'bundle:umd:theme', + 'bundle:umd:auth', + 'bundle:umd:security', + 'bundle:umd:moment', + 'bundle:umd:date-fns', +]); + +task('bundle:umd:theme', () => bundleUmdModule('theme')); +task('bundle:umd:auth', () => bundleUmdModule('auth')); +task('bundle:umd:security', () => bundleUmdModule('security')); +task('bundle:umd:moment', () => bundleUmdModule('moment')); +task('bundle:umd:date-fns', () => bundleUmdModule('date-fns')); task('bundle:rename-dev', bundleRenameDev); -function bundleUmdTheme() { - const config = { - src: `${LIB_DIR}/theme/**/*.js`, - moduleName: 'nb.theme', - entry: `${LIB_DIR}/theme/index.js`, +function bundleUmdModule(name: string) { + bundle({ + src: `${LIB_DIR}/${name}/**/*.js`, + moduleName: `nb.${name}`, + entry: `${LIB_DIR}/${name}/index.js`, format: 'umd', - output: 'theme.umd.js', - dest: `${LIB_DIR}/theme/bundles`, - }; - - bundle(config); -} - -function bundleUmdAuth() { - const config = { - src: `${LIB_DIR}/auth/**/*.js`, - moduleName: 'nb.auth', - entry: `${LIB_DIR}/auth/index.js`, - format: 'umd', - output: 'auth.umd.js', - dest: `${LIB_DIR}/auth/bundles`, - }; - - bundle(config); -} - -function bundleUmdSecurity() { - const config = { - src: `${LIB_DIR}/security/**/*.js`, - moduleName: 'nb.security', - entry: `${LIB_DIR}/security/index.js`, - format: 'umd', - output: 'security.umd.js', - dest: `${LIB_DIR}/security/bundles`, - }; - - bundle(config); + output: `${name}.umd.js`, + dest: `${LIB_DIR}/${name}/bundles`, + }); } function bundle(config: any) { diff --git a/scripts/gulp/tasks/bundle/rollup-config.ts b/scripts/gulp/tasks/bundle/rollup-config.ts index 3815eba4d4..86d5eac5d2 100644 --- a/scripts/gulp/tasks/bundle/rollup-config.ts +++ b/scripts/gulp/tasks/bundle/rollup-config.ts @@ -30,10 +30,16 @@ const ROLLUP_GLOBALS = { // 3rd party dependencies 'intersection-observer': 'intersection-observer', + // date libs for date service + 'moment': 'moment', + 'date-fns/parse': 'date-fns.parse', + // @nebular dependencies '@nebular/theme': 'nb.theme', '@nebular/auth': 'nb.auth', '@nebular/security': 'nb.security', + '@nebular/moment': 'nb.moment', + '@nebular/date-fns': 'nb.date-fns', }; export const ROLLUP_COMMON_CONFIG = { diff --git a/src/framework/date-fns/services/date-fns-date.service.ts b/src/framework/date-fns/services/date-fns-date.service.ts index 200daa6772..b678ad50af 100644 --- a/src/framework/date-fns/services/date-fns-date.service.ts +++ b/src/framework/date-fns/services/date-fns-date.service.ts @@ -8,7 +8,11 @@ import { Inject, Injectable, LOCALE_ID } from '@angular/core'; import { NbNativeDateService } from '@nebular/theme'; -import * as parse from 'date-fns/parse'; +import * as dateFnsParse from 'date-fns/parse'; +// @ts-ignore +import { default as rollupParse} from 'moment'; + +const parse = rollupParse || dateFnsParse; @Injectable() diff --git a/src/framework/moment/services/moment-date.service.ts b/src/framework/moment/services/moment-date.service.ts index 468e8e531b..133962a418 100644 --- a/src/framework/moment/services/moment-date.service.ts +++ b/src/framework/moment/services/moment-date.service.ts @@ -9,8 +9,11 @@ import { TranslationWidth } from '@angular/common'; import { NbDateService } from '@nebular/theme'; -import * as moment from 'moment'; -import { Moment } from 'moment'; +import * as _moment from 'moment'; +// @ts-ignore +import { default as _rollupMoment, Moment } from 'moment'; + +const moment = _rollupMoment || _moment; @Injectable()