Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在webpack中将JSON文件导出为单独的块?_Webpack - Fatal编程技术网

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

如何在webpack中将JSON文件导出为单独的块?,webpack,Webpack,我正在用webpack构建一个webapp,但遇到了一些我自己或文档无法理解的问题 我想要实现的是将webpack配置为不包含一个特定json文件或所有json文件到主捆绑包中。但是,仍然可以这样要求他们: define(['app/config.json'], function (config) { ... }); module: { loaders: [ { test: /\.json/, loader: "js

我正在用webpack构建一个webapp,但遇到了一些我自己或文档无法理解的问题

我想要实现的是将webpack配置为不包含一个特定json文件或所有json文件到主捆绑包中。但是,仍然可以这样要求他们:

define(['app/config.json'], function (config) {
...
});
module: { 
    loaders: [
        { 
            test: /\.json/, 
            loader: "json" 
        },
        // ...
    ]
}
        { 
            test: /\.json/, 
            loader: "file",
            query: {
                name: 'res/[name].[ext]'
            }  
        },
module.exports = require('app/config.json');
我当前的json文件网页包配置如下所示:

define(['app/config.json'], function (config) {
...
});
module: { 
    loaders: [
        { 
            test: /\.json/, 
            loader: "json" 
        },
        // ...
    ]
}
        { 
            test: /\.json/, 
            loader: "file",
            query: {
                name: 'res/[name].[ext]'
            }  
        },
module.exports = require('app/config.json');
上面显示的配置加载JSON文件,对其进行解析,需要它们的模块只需获得一个实例化的js对象。了不起的config.json文件包含一些特定于安装的变量,应用程序的用户应该可以编辑这些变量

像这样使用文件加载程序时:

define(['app/config.json'], function (config) {
...
});
module: { 
    loaders: [
        { 
            test: /\.json/, 
            loader: "json" 
        },
        // ...
    ]
}
        { 
            test: /\.json/, 
            loader: "file",
            query: {
                name: 'res/[name].[ext]'
            }  
        },
module.exports = require('app/config.json');
JSON文件不包含在捆绑包中,但不需要加载该文件,它只返回文件名。有什么想法吗

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

这就是文件加载器的全部要点。这就是为什么它可以很好地处理图像等资产的原因。但是,它可能不适用于您的用例,因为您必须根据返回的路径本身查询文件(与您的想法相反)

如果您显式地想要分离JSON,也许可以使用。这意味着您必须实现一个单独的入口点来公开数据。可能是这样的小事:

define(['app/config.json'], function (config) {
...
});
module: { 
    loaders: [
        { 
            test: /\.json/, 
            loader: "json" 
        },
        // ...
    ]
}
        { 
            test: /\.json/, 
            loader: "file",
            query: {
                name: 'res/[name].[ext]'
            }  
        },
module.exports = require('app/config.json');

然后从应用程序中指向该代理CommonChunkPlugin将处理您的拆分要求。

感谢您对文件加载程序的澄清。我可能被这个名字误导了。我以为文件加载器会实际加载文件。相反,文件加载器检索到文件的路径。那很好。我的解决方案是使用文件加载器检索路径,并使用jqueryajax加载JSON文件。