Добавление часового пояса moment.js в проект Angular с угловым cli - веб-пакет - PullRequest
0 голосов
/ 28 сентября 2018

Мне нужно добавить moment.js и сборку часового пояса в проекте Angular с использованием Angle Cli / Webpack.

Я импортировал в файлы ts момент-часовой пояс

import * as moment from 'moment-timezone';

Iнастроил файл angular.json с нужными мне скриптами

{
  "projects": {
            ..
        "styles": [],
        "scripts": [
          "node_modules/moment/moment.js",
          "node_modules/moment/locale/es.js",
          "node_modules/moment-timezone/moment-timezone.js",
          "node_modules/moment-timezone/builds/moment-timezone-with-data-2012-2022.js"
            ]
...
}

Это частично работает, но у меня есть две проблемы:

  • Не добавляется moment-timezone-with-data-2012-2022.js
  • Когда я проверяю, какие файлы были добавлены в vendor.js, я нахожу все включенные папки моментов и моментов часовых поясов

Я не хочу, чтобы полная папка добавлялась в vendor.js.Что я могу сделать?

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

У меня была такая же проблема.

import * as moment from 'moment-timezone';

добавил все от moment-timezone и moment к пакету, что означает каждый языковой стандарт и каждый часовой пояс.Я импортировал только то, что мне было нужно:

import moment from 'moment-timezone/moment-timezone';
import 'moment/locale/sk';
import { MomentInput } from 'moment';

Я также добавил статический инициализатор для своего DateUtils и скопировал данные часового пояса для своего часового пояса из сборки часового пояса, потому что мне нужен был только один часовой пояс:

static initialize(): void {
  moment.locale('sk');
  moment.tz.add([
    'Europe/Prague|CET CEST|-10 -20|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 16M0 1lc0 1tA0 17A0 11c0 1io0 17c0 1io0 17c0 1fc0 1ao0 1bNc0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|13e5'
  ]);
  moment.tz.link('Europe/Prague|Europe/Bratislava');
  moment.tz.setDefault('Europe/Bratislava');
}

Только во всем приложении DateUtils теперь импортирует moment материал, поэтому никто не должен импортировать весь пакет по ошибке.

0 голосов
/ 28 сентября 2018

Чтобы использовать moment.js в Angular, сначала установите moment.js:

npm i moment --save

, затем импортируйте moment.js туда, где вам нужно:

import * as moment from 'moment';

Теперь вы можете использовать момент какв других проектах JavaScript:

moment().format();
...