json5-manifest-sync 0.3.3 → 0.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/README.md +28 -73
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -51,6 +51,28 @@ Run it:
|
|
|
51
51
|
npm run sync:json5
|
|
52
52
|
```
|
|
53
53
|
|
|
54
|
+
## Alternative installation methods
|
|
55
|
+
|
|
56
|
+
Global install (optional):
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
npm install -g json5-manifest-sync
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Or with pnpm:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
pnpm add --global json5-manifest-sync
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Install from GitHub (alternative)
|
|
69
|
+
|
|
70
|
+
Use this if you want an unreleased branch or tag:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
npm install github:BBaysinger/json5-manifest-sync#main
|
|
74
|
+
```
|
|
75
|
+
|
|
54
76
|
## Why this exists
|
|
55
77
|
|
|
56
78
|
`package.json` must be strict JSON, which means comments are invalid. That makes it hard to document complex scripts, dependency choices, or workspace settings directly in the manifest.
|
|
@@ -61,9 +83,6 @@ Some tooling does not treat `package.json5` as a package manifest source. While
|
|
|
61
83
|
|
|
62
84
|
This is also why the long-running Yarn Berry discussion about comment-friendly manifests is relevant here: [yarnpkg/berry#241](https://github.com/yarnpkg/berry/issues/241) describes the same underlying need, along with the ecosystem compatibility constraints that make a companion `package.json5` approach useful today.
|
|
63
85
|
|
|
64
|
-
> [!NOTE]
|
|
65
|
-
> pnpm's native `package.json5` support is useful when pnpm controls the workflow, but it does not make `package.json5` universally recognized across npm, CI/CD, deployment, release, and other JavaScript tooling. This project keeps `package.json` available for compatibility while providing a documented companion file.
|
|
66
|
-
|
|
67
86
|
The source of truth for this tool is configurable. By default:
|
|
68
87
|
|
|
69
88
|
- `package.json` is authoritative for manifest values.
|
|
@@ -101,65 +120,7 @@ Repository: https://github.com/BBaysinger/json5-manifest-sync
|
|
|
101
120
|
|
|
102
121
|
Package: https://www.npmjs.com/package/json5-manifest-sync
|
|
103
122
|
|
|
104
|
-
##
|
|
105
|
-
|
|
106
|
-
Bradley Baysinger ([@BBaysinger](https://github.com/BBaysinger))
|
|
107
|
-
|
|
108
|
-
## Install from the npm registry (recommended)
|
|
109
|
-
|
|
110
|
-
Use the package manager already used by your project so its lockfile stays consistent.
|
|
111
|
-
|
|
112
|
-
With npm:
|
|
113
|
-
|
|
114
|
-
```bash
|
|
115
|
-
npm install --save-dev json5-manifest-sync
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
With pnpm:
|
|
119
|
-
|
|
120
|
-
```bash
|
|
121
|
-
pnpm add --save-dev json5-manifest-sync
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
Global install (optional):
|
|
125
|
-
|
|
126
|
-
```bash
|
|
127
|
-
npm install -g json5-manifest-sync
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
Or with pnpm:
|
|
131
|
-
|
|
132
|
-
```bash
|
|
133
|
-
pnpm add --global json5-manifest-sync
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
## Install from GitHub (alternative)
|
|
137
|
-
|
|
138
|
-
Use this if you want an unreleased branch or tag:
|
|
139
|
-
|
|
140
|
-
```bash
|
|
141
|
-
npm install github:BBaysinger/json5-manifest-sync#main
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
## Use in a project
|
|
145
|
-
|
|
146
|
-
Add a script in your consuming project's `package.json`:
|
|
147
|
-
|
|
148
|
-
```json
|
|
149
|
-
{
|
|
150
|
-
"scripts": {
|
|
151
|
-
"sync:json5": "json5-manifest-sync"
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
Run it:
|
|
157
|
-
|
|
158
|
-
```bash
|
|
159
|
-
npm run sync:json5
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
### Options
|
|
123
|
+
## Options
|
|
163
124
|
|
|
164
125
|
By default, the tool runs with `--blank-comments=preserve`.
|
|
165
126
|
|
|
@@ -184,7 +145,7 @@ npx --yes --package=json5-manifest-sync json5-manifest-sync --source=package.jso
|
|
|
184
145
|
|
|
185
146
|
You cannot use a local `npm run` script or install this tool as a local dev dependency until `package.json` exists. Once generated, npm and other strict-JSON tools can use it. Note that commands such as `npm install` update `package.json`; reconcile those changes back into `package.json5` with the default `--source=package.json` mode before regenerating JSON from the JSON5 source, or those updates could be overwritten.
|
|
186
147
|
|
|
187
|
-
|
|
148
|
+
In this setup, pnpm reads the generated `package.json`; it reads `package.json5` directly only when `package.json` is absent.
|
|
188
149
|
|
|
189
150
|
Choose a blank-comment mode with one of the following:
|
|
190
151
|
|
|
@@ -217,16 +178,10 @@ Example prompt:
|
|
|
217
178
|
|
|
218
179
|
> "Complete empty `//` comment lines in `package.json5` with concise, field-specific comments."
|
|
219
180
|
|
|
220
|
-
## Example dependency block in consumer
|
|
221
|
-
|
|
222
|
-
```json
|
|
223
|
-
{
|
|
224
|
-
"dependencies": {
|
|
225
|
-
"json5-manifest-sync": "^0.3.0"
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
```
|
|
229
|
-
|
|
230
181
|
## Changelog
|
|
231
182
|
|
|
232
183
|
See `CHANGELOG.md` for full release history.
|
|
184
|
+
|
|
185
|
+
## Author
|
|
186
|
+
|
|
187
|
+
Bradley Baysinger ([@BBaysinger](https://github.com/BBaysinger))
|
package/package.json
CHANGED