mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-04-23 17:18:32 +02:00
Move lockfile patch to standalone script
This commit is contained in:
@@ -64,16 +64,7 @@ modules:
|
|||||||
|
|
||||||
# Patch lockfile: add resolved URLs for nested workspace deps that npm
|
# Patch lockfile: add resolved URLs for nested workspace deps that npm
|
||||||
# omits (see https://github.com/npm/cli/issues/4460)
|
# omits (see https://github.com/npm/cli/issues/4460)
|
||||||
- >-
|
- node flatpak/patch-lockfile.cjs
|
||||||
node -e "const fs=require('fs');
|
|
||||||
const p='package-lock.json';
|
|
||||||
const d=JSON.parse(fs.readFileSync(p,'utf-8'));
|
|
||||||
for(const[n,info]of Object.entries(d.packages||{})){
|
|
||||||
if(!n||info.link||info.resolved||!n.includes('node_modules/')||!info.version)continue;
|
|
||||||
const pkg=n.split('node_modules/').pop();
|
|
||||||
const base=pkg.split('/').pop();
|
|
||||||
info.resolved='https://registry.npmjs.org/'+pkg+'/-/'+base+'-'+info.version+'.tgz';
|
|
||||||
}fs.writeFileSync(p,JSON.stringify(d,null,2));"
|
|
||||||
|
|
||||||
# Install npm dependencies offline
|
# Install npm dependencies offline
|
||||||
- npm ci --offline
|
- npm ci --offline
|
||||||
@@ -114,7 +105,7 @@ modules:
|
|||||||
- type: git
|
- type: git
|
||||||
url: https://github.com/mountain-loop/yaak.git
|
url: https://github.com/mountain-loop/yaak.git
|
||||||
tag: v2026.2.0
|
tag: v2026.2.0
|
||||||
commit: 76ee3fa61bebe8a5cc57cb286e8210155f516b75
|
commit: adeaaccc4504db3c737334633b08dad3053aa82c
|
||||||
x-checker-data:
|
x-checker-data:
|
||||||
type: git
|
type: git
|
||||||
tag-pattern: ^v(\d+\.\d+\.\d+)$
|
tag-pattern: ^v(\d+\.\d+\.\d+)$
|
||||||
|
|||||||
20
flatpak/patch-lockfile.cjs
Normal file
20
flatpak/patch-lockfile.cjs
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
// Adds missing `resolved` URLs to package-lock.json for nested workspace deps.
|
||||||
|
// npm omits these fields for some packages (see https://github.com/npm/cli/issues/4460),
|
||||||
|
// which breaks offline installs. This script constructs the URL from the package
|
||||||
|
// name and version without requiring network access.
|
||||||
|
|
||||||
|
const fs = require("fs");
|
||||||
|
|
||||||
|
const p = process.argv[2] || "package-lock.json";
|
||||||
|
const d = JSON.parse(fs.readFileSync(p, "utf-8"));
|
||||||
|
|
||||||
|
for (const [name, info] of Object.entries(d.packages || {})) {
|
||||||
|
if (!name || info.link || info.resolved) continue;
|
||||||
|
if (!name.includes("node_modules/") || !info.version) continue;
|
||||||
|
const pkg = name.split("node_modules/").pop();
|
||||||
|
const base = pkg.split("/").pop();
|
||||||
|
info.resolved =
|
||||||
|
"https://registry.npmjs.org/" + pkg + "/-/" + base + "-" + info.version + ".tgz";
|
||||||
|
}
|
||||||
|
|
||||||
|
fs.writeFileSync(p, JSON.stringify(d, null, 2));
|
||||||
Reference in New Issue
Block a user