mirror of
https://github.com/penpot/penpot.git
synced 2026-09-10 22:19:19 +00:00
🐛 Fix lock file not being included in npm package
The root lock file not being present causes issues, because the sub-project dependencies are managed by it. The lack of inclusion of pnpm-lock.yaml was the root cause of #8829. A dependency was updated incompatibly, breaking the release. Since npm pack has a hard exclusion rule for pnpm-lock.yaml, we include it under a different name and restore it at runtime.
This commit is contained in:
parent
94215447c9
commit
2e24f1e2de
@ -306,5 +306,7 @@ you may set the following environment variables to configure the two servers
|
|||||||
- Ensure that at least the major, minor and patch components of the version are always up-to-date.
|
- Ensure that at least the major, minor and patch components of the version are always up-to-date.
|
||||||
- The MCP plugin assumes that a mismatch between the MCP version and the Penpot version (as returned by the API)
|
- The MCP plugin assumes that a mismatch between the MCP version and the Penpot version (as returned by the API)
|
||||||
indicates incompatibility, resulting in the display of a warning message in the plugin UI.
|
indicates incompatibility, resulting in the display of a warning message in the plugin UI.
|
||||||
* Packaging and publishing:
|
* Packaging and publishing:
|
||||||
- Create npm package: `bash scripts/pack` (sets version and then calls `npm pack`)
|
1. Ensure release version is set correctly in package.json (call `bash scripts/set-version` to update it automatically)
|
||||||
|
2. Create npm package: `bash scripts/pack` (creates `penpot-mcp-<version>.tgz` for publishing)
|
||||||
|
3. Publish to npm: `npm publish penpot-mcp-<version>.tgz --access public`
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
|
|
||||||
const { execSync } = require("child_process");
|
const { execSync } = require("child_process");
|
||||||
|
const fs = require("fs");
|
||||||
const path = require("path");
|
const path = require("path");
|
||||||
|
|
||||||
const root = path.resolve(__dirname, "..");
|
const root = path.resolve(__dirname, "..");
|
||||||
@ -9,6 +10,14 @@ function run(command) {
|
|||||||
execSync(command, { cwd: root, stdio: "inherit" });
|
execSync(command, { cwd: root, stdio: "inherit" });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// pnpm-lock.yaml is hard-excluded by npm pack; it is shipped as pnpm-lock.dist.yaml
|
||||||
|
// and restored here before bootstrap runs.
|
||||||
|
const distLock = path.join(root, "pnpm-lock.dist.yaml");
|
||||||
|
const lock = path.join(root, "pnpm-lock.yaml");
|
||||||
|
if (fs.existsSync(distLock)) {
|
||||||
|
fs.copyFileSync(distLock, lock);
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
run("corepack pnpm run bootstrap");
|
run("corepack pnpm run bootstrap");
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|||||||
@ -1,12 +1,11 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
#
|
|
||||||
# Sets the version from Git tags, then produces the npm tarball.
|
|
||||||
# Must be invoked directly (not via npm/pnpm) so that the version
|
|
||||||
# is written to package.json before npm reads it.
|
|
||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
cd "$(dirname "$0")/.."
|
cd "$(dirname "$0")/.."
|
||||||
|
|
||||||
bash ./scripts/set-version
|
# pnpm-lock.yaml is hard-excluded by npm, but we need it; ship it under a neutral name
|
||||||
|
cp pnpm-lock.yaml pnpm-lock.dist.yaml
|
||||||
|
trap 'rm -f pnpm-lock.dist.yaml' EXIT
|
||||||
|
|
||||||
npm pack
|
npm pack
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user