
Product
Introducing Rust Support in Socket
Socket now supports Rust and Cargo, offering package search for all users and experimental SBOM generation for enterprise projects.
json-perf-loader
Advanced tools
A loader for webpack to load JSON with performance advice.
See The cost of parsing JSON - V8
Because the JSON grammar is much simpler than JavaScript’s grammar, JSON can be parsed more efficiently than JavaScript. This knowledge can be applied to improve start-up performance for web apps that ship large JSON-like configuration object literals (such as inline Redux stores). Instead of inlining the data as a JavaScript object literal.
As long as the JSON string is only evaluated once, the
JSON.parse
approach is much faster compared to the JavaScript object literal, especially for cold loads. A good rule of thumb is to apply this technique for objects of 10 kB or larger — but as always with performance advice, measure the actual impact before making any changes.
To begin, you'll need to install json-perf-loader
:
$ npm install json-perf-loader --save-dev
json-perf-loader
works like
json-loader
, but much faster.
index.js
import json from './file.json'
webpack.config.js
module.exports = {
module: {
rules: [
{
test: /\.json$/i,
type: 'javascript/auto',
use: [
{
loader: 'json-perf-loader',
options: {
limit: 4096,
},
},
],
},
],
},
}
And run webpack
via your preferred method.
Note: type: "javascript/auto"
is require. See https://webpack.js.org/configuration/module/#ruletype
Rule.type
sets the type for a matching module. This prevents defaultRules and their default importing behaviors from occurring. For example, if you want to load a.json
file through a custom loader, you'd need to set thetype
tojavascript/auto
to bypass webpack's built-in json importing.
limit
Type: Number|String
Default: 1024 * 10
The limit can be specified via loader options and defaults to 1024 * 10
. This is the recommended value for the V8 team.
Number
A Number
specifying the maximum size of a file in bytes. If the file size is
equal or greater than the limit JSON.parse
will be used.
webpack.config.js
module.exports = {
module: {
rules: [
{
test: /\.json$/i,
type: 'javascript/auto',
use: [
{
loader: 'json-perf-loader',
options: {
limit: 10,
},
},
],
},
],
},
}
1.1.0 - [2021-02-25]
FAQs
A loader for webpack to load JSON with performance advice
We found that json-perf-loader demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket now supports Rust and Cargo, offering package search for all users and experimental SBOM generation for enterprise projects.
Product
Socket’s precomputed reachability slashes false positives by flagging up to 80% of vulnerabilities as irrelevant, with no setup and instant results.
Product
Socket is launching experimental protection for Chrome extensions, scanning for malware and risky permissions to prevent silent supply chain attacks.