我应该如何在 webpack 中使用 moment-timezone?

How should I use moment-timezone with webpack?

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

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

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)时遇到过同样的问题。

您可以通过将 JSON 加载程序添加到您的 webpack 配置来解决这个问题。

$npm install json-loader

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

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

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

npm install json-loader

然后将其包含在您的 rules

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