Оптимизация момент-часовой пояс с веб-пак

Я пытаюсь исключить последний файл.json, который использует момент-часовой пояс, и использую свой собственный, который включает только нужные вам часовые пояса. Чтобы уменьшить мой выходной пакет.

в webpack config.plugins я попробовал:

new webpack.NormalModuleReplacementPlugin(
    /moment-timezone\/data\/packed\/latest\.json/,
    require.resolve('./timezones/timezone-definitions.json')
)

но безуспешно Я все еще получаю последний файл.json, который использует момент-часовой пояс. Я не получаю никакой ошибки в консоли.

Какие-либо предложения?

0 ответов

Я попытался использовать решение webpack.NormalModuleReplacementPlugin(), но оно не сработало, тогда я нашел комментарий по ссылке ниже и использовал псевдоним. Это сработало.

https://github.com/webpack/webpack/issues/8105

resolve: {
        extensions: [".ts", ".js", ".svg", ".json"],
        alias: {
            [path.resolve(__dirname, "node_modules/moment-timezone/data/packed/latest.json")]:
                path.resolve(__dirname, "src/common/timezone-definitions.json")
        }
    }

Убедитесь, что вы добавили .json к resolve.extensions массив.

Если вы используете webpack, вас может заинтересовать https://github.com/gilmoreorless/moment-timezone-data-webpack-plugin для оптимизации моментального часового пояса latest.json

Вы можете ограничить данные, которые должны быть включены из latest.json, следующим образом:

  • выбор годового диапазона
  • выбор регионов, стран...

Пример включения набора зон:

const MomentTimezoneDataPlugin = require('moment-timezone-data-webpack-plugin');

module.exports = {
  plugins: [
    new MomentTimezoneDataPlugin({
        matchZones: [/^Australia/, 'Pacific/Auckland', 'Etc/UTC'],
        startYear: 2000,
        endYear: 2030,
    }),
  ]
};

Вы можете найти больше информации и примеров здесь

Другие вопросы по тегам