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