Edit package.json without parsing, as string, to keep the formatting intact
This package is pure ESM. If you're not ready yet, install an older version of this program, 0.4.0 (npm i edit-package-json@0.4.0
).
npm i edit-package-json
import { strict as assert } from "assert";
import { set, del } from "edit-package-json";
// edit JSON as string
assert.equal(
set(
`{
"name": "test",
"dependencies": {
"ranges-apply": "^2.0.0",
"string-left-right": "^2.3.30"
},
"devDependencies": {}
}`,
"dependencies.ranges-apply", // path to amend
"^3.2.2", // new value
),
`{
"name": "test",
"dependencies": {
"ranges-apply": "^3.2.2",
"string-left-right": "^2.3.30"
},
"devDependencies": {}
}`,
);
// delete from JSON string
assert.equal(
del(
`{
"name": "test",
"dependencies": {
"ranges-apply": "^2.0.0",
"string-left-right": "^2.3.30"
},
"devDependencies": {}
}`,
"devDependencies", // path to delete
),
`{
"name": "test",
"dependencies": {
"ranges-apply": "^2.0.0",
"string-left-right": "^2.3.30"
}
}`,
);
Please visit codsen.com for a full description of the API.
To report bugs or request features or assistance, raise an issue on GitHub.
MIT License.
Copyright © 2010-2024 Roy Revelt and other contributors.
Passes adapted .set() unit tests from https://github.com/mariocasciaro/object-path/blob/master/test.js, MIT Licence Copyright (c) 2015 Mario Casciaro