如何在webpack中将JSON文件导出为单独的块?

时间:2015-12-28 13:19:23

标签: webpack

我正在使用webpack构建一个webapp并遇到一些问题,我无法弄清楚自己或文档。

我想要实现的是配置webpack,因为它不会将一个特定的json文件或所有这些文件包含在主包中。但是,它仍然可以像这样要求它们:

define(['app/config.json'], function (config) {
...
});

我当前对json文件的webpack配置如下所示:

module: { 
    loaders: [
        { 
            test: /\.json/, 
            loader: "json" 
        },
        // ...
    ]
}

上面显示的配置加载JSON文件,解析它,并且需要它们的模块只需获得一个实例化的js对象。奇妙! config.json文件包含一些特定于安装的变量,应由应用程序的用户编辑。

当像这样使用文件加载器时:

        { 
            test: /\.json/, 
            loader: "file",
            query: {
                name: 'res/[name].[ext]'
            }  
        },

JSON文件未包含在捆绑包中,但要求它不加载文件,它只返回文件名。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

  

JSON文件未包含在捆绑包中,但要求它不加载文件,它只返回文件名。有什么想法吗?

这是文件加载器的重点。这就是为什么它与图像等资产一起运行良好的原因。但是,它可能不适用于您的用例,因为您必须根据返回的路径本身查询文件(违背您的想法)。

如果您明确要将JSON分开,也许您可​​以使用CommonsChunkPlugin。这意味着您必须实现一个公开数据的单独入口点。它可能像这样微不足道:

module.exports = require('app/config.json');

然后,您将从您的应用程序指向此代理。 CommonsChunkPlugin 会处理您的分割要求。