Skip to content

Commit 516de85

Browse files
committed
Add script to update package-lock.json
1 parent 74bd141 commit 516de85

3 files changed

Lines changed: 48 additions & 23 deletions

File tree

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,12 @@ git merge template/main --allow-unrelated-histories
253253

254254
For more information, read [the instructions on the wiki](https://github.com/paranext/paranext-extension-template/wiki/Merging-Template-Changes-into-Your-Extension).
255255

256+
After updating this extension from the template, clear all temp/cache files and regenerate the extension's `package-lock.json` with this command:
257+
258+
```bash
259+
npm run core:reinstall
260+
```
261+
256262
**Note:** The merge/squash commits created when updating this repo from the template are important; Git uses them to compare the files for future updates. If you edit this repo's Git history, please preserve these commits (do not squash them, for example) to avoid duplicated merge conflicts in the future.
257263

258264
## Special features in this project

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
"core:start": "npm --prefix ../paranext-core start",
3333
"core:stop": "npm --prefix ../paranext-core stop",
3434
"core:reset": "npm run core:stop && node ./scripts/delete-temp-dirs.cjs --core --ext",
35+
"core:reinstall": "npm run core:reset && node ./scripts/delete-temp-dirs.cjs --npm && npm run core:update && npm i",
3536
"core:install": "npm --prefix ../paranext-core install",
3637
"core:pull": "git -C ../paranext-core pull --ff-only",
3738
"core:update": "npm run core:pull && npm run core:install"

scripts/delete-temp-dirs.cjs

Lines changed: 41 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,41 @@ const path = require('path');
1111
* - `paranext-core/dev-appdata/`, which includes `installed-extensions/`
1212
*/
1313

14+
// Check command-line arguments
15+
16+
const hasCoreFlag = process.argv.includes('--core');
17+
const hasExtFlag = process.argv.includes('--ext');
18+
const hasNpmFlag = process.argv.includes('--npm');
19+
20+
if (!hasCoreFlag && !hasExtFlag && !hasNpmFlag) {
21+
console.error('Usage: node delete-temp-dirs.cjs [--core] [--ext] [--npm]');
22+
console.error(' --core Delete Electron and core cache (Electron, dev-appdata)');
23+
console.error(' --ext Delete extension directories (coverage, dist, src/temp-build)');
24+
console.error(' --npm Delete both node_modules and extension package-lock.json');
25+
process.exit(1);
26+
}
27+
1428
// Define directory lists
1529

16-
/* eslint-disable no-nested-ternary */
17-
let electronParent =
18-
process.platform === 'win32'
19-
? process.env.APPDATA
20-
: process.platform === 'linux'
21-
? process.env.XDG_CONFIG_HOME
22-
: '';
23-
if (!electronParent && process.env.HOME) {
30+
let electronParent = '';
31+
if (hasCoreFlag) {
32+
/* eslint-disable no-nested-ternary */
2433
electronParent =
25-
process.platform === 'linux'
26-
? path.join(process.env.HOME, '.config')
27-
: process.platform === 'darwin'
28-
? path.join(process.env.HOME, 'Library', 'Application Support')
34+
process.platform === 'win32'
35+
? process.env.APPDATA
36+
: process.platform === 'linux'
37+
? process.env.XDG_CONFIG_HOME
2938
: '';
39+
if (!electronParent && process.env.HOME) {
40+
electronParent =
41+
process.platform === 'linux'
42+
? path.join(process.env.HOME, '.config')
43+
: process.platform === 'darwin'
44+
? path.join(process.env.HOME, 'Library', 'Application Support')
45+
: '';
46+
}
47+
/* eslint-enable no-nested-ternary */
3048
}
31-
/* eslint-enable no-nested-ternary */
3249

3350
const CORE_DIRS = [
3451
electronParent ? path.join(electronParent, 'Electron') : '',
@@ -41,6 +58,12 @@ const EXT_DIRS = [
4158
path.join(__dirname, '..', 'src', 'temp-build'),
4259
];
4360

61+
const NPM_PATHS = [
62+
path.join(__dirname, '..', '..', 'paranext-core', 'node_modules'),
63+
path.join(__dirname, '..', 'node_modules'),
64+
path.join(__dirname, '..', 'package-lock.json'),
65+
];
66+
4467
/**
4568
* Delete a directory if it exists
4669
*
@@ -67,16 +90,6 @@ function deleteDirectory(dirPath) {
6790
// Delete directories based on command-line flags
6891

6992
try {
70-
const hasCoreFlag = process.argv.includes('--core');
71-
const hasExtFlag = process.argv.includes('--ext');
72-
73-
if (!hasCoreFlag && !hasExtFlag) {
74-
console.error('Usage: node delete-temp-dirs.cjs [--core] [--ext]');
75-
console.error(' --core Delete AppData and core cache directories (Electron, dev-appdata)');
76-
console.error(' --ext Delete extension directories (coverage, dist, src/temp-build)');
77-
process.exit(1);
78-
}
79-
8093
if (hasCoreFlag) {
8194
console.log('Deleting core cache directories...');
8295
CORE_DIRS.forEach(deleteDirectory);
@@ -87,6 +100,11 @@ try {
87100
EXT_DIRS.forEach(deleteDirectory);
88101
}
89102

103+
if (hasNpmFlag) {
104+
console.log('Deleting node_modules and package-lock.json...');
105+
NPM_PATHS.forEach(deleteDirectory);
106+
}
107+
90108
console.log('Complete!');
91109
process.exit(0);
92110
} catch (error) {

0 commit comments

Comments
 (0)