Skip to content

Commit 252ac31

Browse files
committed
Improve JSON parse error
1 parent 6323b17 commit 252ac31

File tree

5 files changed

+11
-3
lines changed

5 files changed

+11
-3
lines changed

lib/Compiler.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
*/
55
"use strict";
66

7+
const parseJson = require("json-parse-better-errors");
78
const asyncLib = require("neo-async");
89
const path = require("path");
910
const util = require("util");
@@ -350,7 +351,7 @@ class Compiler extends Tapable {
350351
if (err) return callback(err);
351352

352353
try {
353-
this.records = JSON.parse(content.toString("utf-8"));
354+
this.records = parseJson(content.toString("utf-8"));
354355
} catch (e) {
355356
e.message = "Cannot parse records: " + e.message;
356357
return callback(e);

lib/DllReferencePlugin.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
*/
55
"use strict";
66

7+
const parseJson = require("json-parse-better-errors");
78
const DelegatedSourceDependency = require("./dependencies/DelegatedSourceDependency");
89
const DelegatedModuleFactoryPlugin = require("./DelegatedModuleFactoryPlugin");
910
const ExternalModuleFactoryPlugin = require("./ExternalModuleFactoryPlugin");
@@ -42,7 +43,7 @@ class DllReferencePlugin {
4243
params.compilationDependencies.add(manifest);
4344
compiler.inputFileSystem.readFile(manifest, (err, result) => {
4445
if (err) return callback(err);
45-
params["dll reference " + manifest] = JSON.parse(
46+
params["dll reference " + manifest] = parseJson(
4647
result.toString("utf-8")
4748
);
4849
return callback();

lib/JsonParser.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
*/
55
"use strict";
66

7+
const parseJson = require("json-parse-better-errors");
78
const JsonExportsDependency = require("./dependencies/JsonExportsDependency");
89

910
class JsonParser {
@@ -12,7 +13,7 @@ class JsonParser {
1213
}
1314

1415
parse(source, state) {
15-
const data = JSON.parse(source);
16+
const data = parseJson(source);
1617
state.module.buildInfo.jsonData = data;
1718
state.module.buildMeta.exportsType = "named";
1819
if (typeof data === "object" && data)

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
"chrome-trace-event": "^0.1.1",
1616
"enhanced-resolve": "^4.0.0",
1717
"eslint-scope": "^3.7.1",
18+
"json-parse-better-errors": "^1.0.2",
1819
"loader-runner": "^2.3.0",
1920
"loader-utils": "^1.1.0",
2021
"memory-fs": "~0.4.1",

yarn.lock

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3538,6 +3538,10 @@ json-loader@^0.5.7:
35383538
version "0.5.7"
35393539
resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d"
35403540

3541+
json-parse-better-errors@^1.0.2:
3542+
version "1.0.2"
3543+
resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
3544+
35413545
json-schema-traverse@^0.3.0:
35423546
version "0.3.1"
35433547
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"

0 commit comments

Comments
 (0)