Open ephys opened 6 years ago
If anyone else is encountering the same bug, my current workaround is to go back to using to json-loader
:
module: {
rules: [{
test: /\.json$/i,
type: 'javascript/auto',
loader: 'json-loader',
}],
},
Sadly I haven't found a way to do that for bundle-loader
-loaded JSON files only (resourceQuery can be used but you'd need to flag every use of bundle-loader in your codebase)
I think this is related to https://github.com/webpack/webpack/issues/6572, as applying https://github.com/webpack/webpack/issues/6572#issuecomment-375012740 fixes the issue.
Adding the following code snippet just before return result.join(""); resolves the issue but it is not nice. I don't know how to property get the generator and parser instance:
if (this._module.type !== "javascript/auto") {
this._module.type = "javascript/auto";
for (var i = 0, ii = this._compilation.modules.length; i < ii; i++) {
if (this._compilation.modules[i].type === "javascript/auto") {
this._module.generator = this._compilation.modules[i].generator;
this._module.parser = this._compilation.modules[i].parser;
break;
}
}
}
Is there a better api to get the instance other then searching in the other modules?
Hello,
I'm not sure what I'm doing wrong but for some reason, if I try to lazily load JSON files using this loader, webpack interprets the generated loading code as if it were JSON too and tries to parse it.
This happens using Webpack 4.1.1
I assume it's because the name of the resource bundle-loader generates ends with
.json
too. (eg../node_modules/bundle-loader?lazy&name=file-[name]!./json-files/a.json
)I reproduced the issue using only bundle-loader and a couple of JSON files here: http://github.com/Ephys/bundle-loader-bug
Here is the webpack log of the above project: https://github.com/Ephys/bundle-loader-bug/blob/master/stacktrace.log
Thank you in advance for your help! :)