09:37 How long have we been using monorepos?.
Get a 30 day free trial of Freshbooks at /syntax and put SYNTAX in the "How did you hear about us?" section. It's an exception tracker, a session re-player and a performance monitor. LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. Spin up a new project today and discover Kontent. Designed to unify all your content and operations, in compliance with ISO27001 and SOC2Type2 certifications. Use REST API or GraphQL and get your content via the global Fastly CDN. Kontent by Kentico is a headless CMS that provides live editing experience to non-technical users and hands you the technical tools to build websites, mobile apps, voice assistants, or anything else where you need content.
The project's code has access to hoisted dependencies.In this episode of Syntax, Scott and Wes talk all about monorepos - the why's and the how's of using them on your projects. ( #1997, #1998, shamefully-hoist: same as shamefully-flatten in previous versions of pnpm. For example, you can choose to hoist only eslint packages: hoist-pattern=eslint-*. All packages matching this pattern will be hoisted. When false, pnpm will not hoist any dependencies in node_modules, preventing dependencies inside node_modules from accessing unlisted dependencies. The * now also matches scopes, so *plugin matches both and eslint-plugin. new pattern matcher ( #2048, new pattern matcher only supports * (so you can do eslint-* or *-plugin-*).If hard links are also not supported, pnpm will copy the packages. If cloning is not supported, pnpm will link packages from the store. by default, pnpm will clone packages on systems that support it.Use clone instead, which is a cross-platform alternative. the default resolution-strategy is fewer-dependencies instead of fast ( #2042, changes in the way packages are imported from the store ( #2043, package-import-method does not support reflink anymore.
To should details, use the -long flag ( #2017, the root package.json is always included in the workspace ( #2021, the CLI fails with unknown/incompatible options ( #1645, fails because of unknown option: pnpm install -foo ( pnpm add fails if no packages are specified ( 5f73a7c, pnpm install installs all dependencies of all workspace packages when executed inside a workspace ( 5f73a7c, independent-leaves is only allowed with hoisting turned off ( f3d5037, pnpm outdated does not print details by default. ( all globally installed packages are always hoisted. So the buggy ecosystem packages will work but pnpm will prevent users from requiring packages that are not declared in package.json. All packages are hoisted but application code has access only to listed dependencies. ( #1998, the current lockfile is moved from node_modules/.pnpm-lock.yaml to node_modules/.pnpm/lock.yaml ( #2018, shamefully-flatten renamed to shamefully-hoist. So application code has no access to the hoisted packages but dependencies have.
all the hard linked dependencies are inside node_modules/.pnpm ( #1636, all the hoisted dependencies are symlinked into node_modules/.pnpm/node_modules.Node.js 10 or newer is required (it will probably work with Node.js 8 as well but we don't test it anymore).