使用Moment TimeZone CDN配置WebPack

问题描述 投票:0回答:1

我正在使用WebPack 4来构建我的TypeScript应用程序。

我的一个模块使用moment-timezone库,例如......

import * as moment from 'moment-timezone';
$('#label-locale').text(moment.locale());

这按预期工作。

为了更好地利用缓存,我想从内容交付网络(CDN)中引用momentmoment-timezone,并将以下内容添加到我的HTML页面:

<script src="https://code.jquery.com/jquery-3.3.1.min.js"
        integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
        crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment-with-locales.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.23/moment-timezone-with-data.min.js"></script>

我还修改了webpack.config.js如下:

module.exports = {
    externals: {
        'jquery': 'jQuery',
        'moment': 'moment-timezone'
    }
};

现在,当我运行我的代码时,我收到以下错误:

ReferenceError: timezone is not defined

我是WebPack的新手,并尝试过将'timezone': 'moment-timezone'添加到externals而没有成功。

任何帮助/方向将非常感谢。

webpack momentjs webpack-4 moment-timezone
1个回答
0
投票

我过度思考了这一点。 moment-timezone实际上'只是'扩展moment对象以包括moment.tz,所以我所要做的就是修改webpack.config.js如下:

module.exports = {
    externals: {
        'jquery': 'jQuery',
        'moment-timezone': 'moment'
    }
};

因此,不是WebPacknode_modules/moment-timezone有效地构建整个定义树,而moment对象已经由CDN参考更新。至少,我认为这就是正在发生的事情。

© www.soinside.com 2019 - 2024. All rights reserved.