我应该如何在 webpack 中使用时刻时区?

Posted

技术标签:

【中文标题】我应该如何在 webpack 中使用时刻时区?【英文标题】:How should I use moment-timezone with webpack? 【发布时间】:2015-06-15 09:39:36 【问题描述】:

在使用 webpack 构建我的项目时,我通常需要来自 npm 模块的 CommonJS 模块。我的项目中需要时刻时区,但是在构建包时,您还必须从时刻时区构建所有数据,这可能会很多。

此外,构建失败并出现以下错误:

ERROR in ./~/moment-timezone/data/packed/latest.json
Module parse failed: /site/node_modules/moment-timezone/data/packed/latest.json Line 2: Unexpected token :
You may need an appropriate loader to handle this file type.
| 
|   "version": "2015a",
|   "zones": [
|       "Africa/Abidjan|LMT GMT|g.8 0|01|-2ldXH.Q",
@ ./~/moment-timezone/index.js 4:15-51

在这一点上,我并不关心构建失败,而是关心构建的大小是否真的成功。不过,显然失败的构建也需要在某个时候得到解决。

我将不胜感激有关如何处理此问题的任何指示,特别是如果你们中的任何人在使用 webpack(或 browserify,也可能)遇到同样的问题时。

【问题讨论】:

【参考方案1】:

您可以通过将 JSON 加载器添加到您的 webpack 配置来解决此问题。

$npm install json-loader

并将其添加到 webpack.config.js 中的加载程序。不要忘记添加扩展名。


  module: 
    loaders: [
        include: /\.json$/, loaders: ["json-loader"]
    ]
  ,
  resolve: 
    extensions: ['', '.json', '.jsx', '.js']
  

【讨论】:

删除resolve 部分后,这对我有用。 我有一点“这不起作用”的 derp 时刻——原来那是因为我的设置使用 webpack 的 dllPlugin 来缓存依赖项,而我把它放在了错误的文件中。将它添加到 webpack dll 配置文件中,然后“npm run build:dll”对我有用。提醒一下,以防有人有类似的时刻。 或类似的时刻时区!哈-哈,对不起:(【参考方案2】:

如果您使用的是 webpack 2.x(目前处于测试阶段)

npm install json-loader

然后将其包含在您的rules


    test: /\.json$/,
    loader: "json-loader"

【讨论】:

谢谢。这工作。我使用 Yarn 添加了包,然后将规则添加到我的 webpack.config 文件中。

以上是关于我应该如何在 webpack 中使用时刻时区?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Angular 2 应用程序中包含时刻时区

通过webpack为Laravel添加时刻

使用moment.js解析时如何忽略时区

如何从时区名称中获取时区偏移量

当时区有 dst 更新时,我如何安排活动

PHP date() 与时区?