我尝试排除moment-timezone使用的Latest.json文件,并使用我自己的文件,其中仅包含您需要的时区。减少我的webpack输出。
在我尝试过的webpack config.plugins中:
new webpack.NormalModuleReplacementPlugin(
/moment-timezone\/data\/packed\/latest\.json/,
require.resolve('./timezones/timezone-definitions.json')
)
但没有成功。我仍然可以获取moment-timezone使用的latest.json文件。我的控制台没有任何错误。
有什么建议吗?
答案 0 :(得分:0)
我尝试使用webpack.NormalModuleReplacementPlugin()解决方案,但是它不起作用,然后我从下面的链接中找到了注释,并使用了别名。奏效了。
https://github.com/webpack/webpack/issues/8105#issuecomment-425823174
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
数组中。
答案 1 :(得分:0)
如果您使用的是Webpack,则可能会对使用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,
}),
]
};
您可以找到更多信息和示例here