{"_id":"@asidatascience/link-local-monorepo","_rev":"5-ff0ffac9accf819fd094436cad7ca952","name":"@asidatascience/link-local-monorepo","dist-tags":{"latest":"1.0.4"},"versions":{"0.0.1":{"name":"@asidatascience/link-local-monorepo","version":"0.0.1","keywords":[],"author":{"name":"Faculty"},"license":"ISC","_id":"@asidatascience/link-local-monorepo@0.0.1","maintainers":[{"name":"jack.holt.faculty","email":"jack.holt@faculty.ai"},{"name":"dancras","email":"dan@dancras.co.uk"},{"name":"tomas-milata","email":"tomas.milata@gmail.com"}],"bin":{"fail-if-linking-local":"fail-if-linking-local.js"},"dist":{"shasum":"c40e62d9b9cb9d6efc1a327b9cd19885e8ee8dd3","tarball":"https://registry.npmjs.org/@asidatascience/link-local-monorepo/-/link-local-monorepo-0.0.1.tgz","fileCount":4,"integrity":"sha512-vC2+sDErpm3V1qrV+zmTpBGH+8QCOcPjgNVBlRINt3g9bzSzyE92b/UQYTtQpujoFrKckbuLGAAgm89ifjpZ8w==","signatures":[{"sig":"MEYCIQD48E1N2Sb0xZjiw7LIpythmHSt9ZI6sQv9ZOamzsfIowIhANPQGzc6WyMhG6stl5rX6CamlePQX2Huc1SoMJ3/t7oW","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3904},"main":"index.js","_from":"file:asidatascience-link-local-monorepo-0.0.1.tgz","private":false,"_npmUser":{"name":"dancras","email":"dan@dancras.co.uk"},"_resolved":"/private/var/folders/0x/jjn4gxf95h1gbht3s5_kj1sh0000gn/T/6c5c7a5f7b424d23e31bd3db0a4e812c/asidatascience-link-local-monorepo-0.0.1.tgz","_integrity":"sha512-vC2+sDErpm3V1qrV+zmTpBGH+8QCOcPjgNVBlRINt3g9bzSzyE92b/UQYTtQpujoFrKckbuLGAAgm89ifjpZ8w==","_npmVersion":"8.19.2","description":"A utility for linking all monorepo packages in another project","directories":{},"_nodeVersion":"18.12.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/link-local-monorepo_0.0.1_1723632769392_0.8491701068732029","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"@asidatascience/link-local-monorepo","version":"0.0.2","keywords":[],"author":{"name":"Faculty"},"license":"ISC","_id":"@asidatascience/link-local-monorepo@0.0.2","maintainers":[{"name":"jack.holt.faculty","email":"jack.holt@faculty.ai"},{"name":"dancras","email":"dan@dancras.co.uk"},{"name":"tomas-milata","email":"tomas.milata@gmail.com"}],"bin":{"fail-if-linking-local":"fail-if-linking-local.js"},"dist":{"shasum":"4a67b1cd4c56308186d66391000b04a3775abf59","tarball":"https://registry.npmjs.org/@asidatascience/link-local-monorepo/-/link-local-monorepo-0.0.2.tgz","fileCount":4,"integrity":"sha512-WUmL549uNiwdvZ1nguybUI++QVj/kpAIBG+uZWQwzJyF3zs3xjkxrDys7WjKvYcMaXiWAM3N4KPNfKFkav20dg==","signatures":[{"sig":"MEQCID4tfhISTvkHyQxDH7hlh5VxzbLSa4J9KIJnETGDZBpBAiAT5wizPbbK20/zHyrnp/VRAivit7hToqOUJLupzKQ4pg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4028},"main":"index.js","_from":"file:asidatascience-link-local-monorepo-0.0.2.tgz","private":false,"_npmUser":{"name":"dancras","email":"dan@dancras.co.uk"},"_resolved":"/private/var/folders/0x/jjn4gxf95h1gbht3s5_kj1sh0000gn/T/2ec4e9f5edccdf61c838ff11d71e921f/asidatascience-link-local-monorepo-0.0.2.tgz","_integrity":"sha512-WUmL549uNiwdvZ1nguybUI++QVj/kpAIBG+uZWQwzJyF3zs3xjkxrDys7WjKvYcMaXiWAM3N4KPNfKFkav20dg==","_npmVersion":"8.19.2","description":"A utility for linking all monorepo packages in another project","directories":{},"_nodeVersion":"18.12.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/link-local-monorepo_0.0.2_1723633559458_0.2682366639289018","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"@asidatascience/link-local-monorepo","version":"1.0.3","keywords":[],"author":{"name":"Faculty"},"license":"ISC","_id":"@asidatascience/link-local-monorepo@1.0.3","maintainers":[{"name":"lukestorry","email":"luke@storry.uk"},{"name":"jack.holt.faculty","email":"jack.holt@faculty.ai"},{"name":"dancras","email":"dan@dancras.co.uk"},{"name":"tomas-milata","email":"tomas.milata@gmail.com"}],"bin":{"fail-if-linking-local":"fail-if-linking-local.js"},"dist":{"shasum":"3fbfe7fb7cddf0024cd9412c2d8b54bd08250694","tarball":"https://registry.npmjs.org/@asidatascience/link-local-monorepo/-/link-local-monorepo-1.0.3.tgz","fileCount":4,"integrity":"sha512-LrE/V1sExk/2vfHldPGiC08Aamxucg5xxwQOLU8DM6tHz+ipXEhyImDz2Kt2C0ljrFzbLkkGzFgXXT67B5yozA==","signatures":[{"sig":"MEUCIB14oznZwEaQZQBaPuWKGoB+XvdlVjjQez/5XiU1jQLQAiEA+GCEcyF4vinX+iTlB8Txlp9Y1MiHd5FbuEgFP6sp3c8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4488},"main":"index.js","gitHead":"821854b1938918a4f8f417c9495204c2d0f1cfd9","private":false,"_npmUser":{"name":"lukestorry","email":"luke@storry.uk"},"prettier":{"semi":true,"printWidth":120,"singleQuote":true,"trailingComma":"all","bracketSpacing":true,"bracketSameLine":false},"_npmVersion":"lerna/6.4.1/node@v20.17.0+arm64 (darwin)","description":"A utility for linking all monorepo packages in another project","directories":{},"_nodeVersion":"20.17.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/link-local-monorepo_1.0.3_1731605813012_0.4701075950368587","host":"s3://npm-registry-packages"}},"1.0.4":{"name":"@asidatascience/link-local-monorepo","version":"1.0.4","description":"A utility for linking all monorepo packages in another project","main":"index.js","bin":{"fail-if-linking-local":"fail-if-linking-local.js"},"keywords":[],"author":{"name":"Faculty"},"license":"ISC","private":false,"publishConfig":{"access":"public"},"prettier":{"printWidth":120,"trailingComma":"all","singleQuote":true,"bracketSpacing":true,"bracketSameLine":false,"semi":true},"_id":"@asidatascience/link-local-monorepo@1.0.4","gitHead":"e4ba3fb142285e12fc47ce5e90c26053e4cea302","_nodeVersion":"22.13.1","_npmVersion":"10.9.2","dist":{"integrity":"sha512-vug/iMmfQLWUgtONqH8MKB25hyU9O0oggt+j1EJ7oC3CdEGC/LVjVbF+8sf01/xAKmMSQOoKdpDeuHgQay52Mw==","shasum":"7c0d05b14966fa94fdfbf1bc88413cca56c10066","tarball":"https://registry.npmjs.org/@asidatascience/link-local-monorepo/-/link-local-monorepo-1.0.4.tgz","fileCount":4,"unpackedSize":5446,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCqwSt9bnVHUw6UY2hjo4wBXEoSJM+X1kveZ3HVCOBJfAIgLn0zBvVZRgxzliphqKZ61l6sshR/mBUV/SMS+xbiCoc="}]},"_npmUser":{"name":"teasealancs","email":"thundercloud@theflux.co.uk"},"directories":{},"maintainers":[{"name":"tomas-milata","email":"tomas.milata@gmail.com"},{"name":"dancras","email":"dan@dancras.co.uk"},{"name":"jack.holt.faculty","email":"jack.holt@faculty.ai"},{"name":"lukestorry","email":"luke@storry.uk"},{"name":"teasealancs","email":"thundercloud@theflux.co.uk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/link-local-monorepo_1.0.4_1738925584361_0.1704906436360607"},"_hasShrinkwrap":false}},"time":{"created":"2024-08-14T10:52:49.291Z","modified":"2025-02-07T10:53:04.806Z","0.0.1":"2024-08-14T10:52:49.604Z","0.0.2":"2024-08-14T11:05:59.672Z","1.0.3":"2024-11-14T17:36:53.221Z","1.0.4":"2025-02-07T10:53:04.545Z"},"author":{"name":"Faculty"},"license":"ISC","keywords":[],"description":"A utility for linking all monorepo packages in another project","maintainers":[{"name":"tomas-milata","email":"tomas.milata@gmail.com"},{"name":"dancras","email":"dan@dancras.co.uk"},{"name":"jack.holt.faculty","email":"jack.holt@faculty.ai"},{"name":"lukestorry","email":"luke@storry.uk"},{"name":"teasealancs","email":"thundercloud@theflux.co.uk"}],"readme":"# Link Local Monorepo\n\nA convenience utility for linking pnpm monorepo packages in another project. Uses the `file:` protocol.\n\n- Works with `pnpm` workspaces\n- Requires the monorepo packages to be in the `packages` directory\n- Currently only supports linking a single monorepo\n- Consuming project must use git and have `pnpm-lock.yaml` at the git root\n\n## Installing\n\n- `pnpm install @asidatascience/link-local-monorepo`\n- Add a `.pnpmfile.cjs`. Example usage:\n\n```js\nconst ENV_FILE = '.env';\nconst ENV_PROPERTY = 'MY_MONOREPO_PATH';\nconst setupLocalLink = require('@asidatascience/link-local-monorepo').init(ENV_FILE, ENV_PROPERTY);\n\nfunction readPackage(pkg, context) {\n  setupLocalLink(pkg);\n  return pkg;\n}\n\nmodule.exports = {\n  hooks: {\n    readPackage,\n  },\n};\n```\n\n## Usage\n\n- Add an env file matching defined `ENV_FILE`\n- Set an environment variable equal to the defined `ENV_PROPERTY` with a path to the mono repo\n- `pnpm install`\n- Unset the value and repeat the install before committing changes\n\n### Injected vs uninjected dependencies\n\nTypically, you will be using this to link your monorepo into another location for local development, so you will want changes to synchronise across as you develop.\n\nHowever, on some build systems, such as Vercel, this can create type conflicts as the source monorepo packages will clash with the target repo packages. If this happens, you can set `{ injected: true }` as an option on `.init()` to make the packages injected. This will instead force-install the source monorepo packages rather than link them.\n\nThis will mean that changes will not synchronise, but it will stop package conflicts.\n\n## (Recommended) Block lock file commits of local packages\n\nAdd a git `precommit` hook with the following\n\n`pnpm fail-if-linking-local`\n","readmeFilename":"README.md"}