话题中我曾回答到,越来越多的项目会开始使用 pnpm。 这是我正在推动的一件事,使用 pnpm 替换现在的 yarn 。无论是csr、ssr、monorepos 等类型项目都正在进行中,有近 10个项目已经迁移完成。 当时 yarn 的 pnp 特性出来的时候,观望过一阵子,没有大面积火起来,遂放弃 ... 现在是注意到vite、modernjs 等使用了...
但试想一下,一旦 C 单独发包出去,用户单独安装 C,那么就找不到 X 了,执行到引用 X 的代码时就直接报错了。 这些,都是依赖提升潜在的 bug。如果是自己的业务代码还好,试想一下如果是给很多开发者用的工具包,那危害就非常严重了。 npm 也有想过去解决这个问题,指定 --global-style 参数即可禁止变量提升,但这...
在packages/pnpm的 bin 目录下有个pnpm.cjs文件,里面的require方法指定了 pnpm 在执行的时候走那一块的逻辑: 这里默认的逻辑走的是打包后的dist目录下的代码逻辑,pnpm 的 compile 每次编译产物的默认目录都是在 dist 目录,但这里如果只是调试的话,我们其实可以完全不走 dist 目录下的产物代码逻辑。 之前笔者给 p...
pnpm 根据[1]中的文档,pnpm run -C中的"-C"选项表示更改当前工作目录。通过"-C"选项指定一个路径,可以让pnpm在该路径下运行脚本。 例如,假设你有一个名为my-project的项目,并且你想通过pnpm运行该项目的脚本。该项目位于/home/user/my-project目录中。那么,你可以使用如下的命令: pnpm run-C/home/user/my...
执行结果C:\Users\coder>npm install -g pnpmnpm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.added 1 package, and audited 3 packages in 5sfound 0...
pnpm 提升方式,可以在.npmrc对其进行配置,.npmrc文件都遵循INI-formatted列表,包含 key = value 参数。 更详细的配置请参考pnpm.io/zh/npmrc hoist 默认值: true 类型: boolean 当hoist 为 true 时,所有依赖项都会被提升到 node_modules/.pnpm/node_modules。 这使得 node_modules 所有包都可以访问 未列出的依...
一般来讲,pnpm对于工作空间的依赖安装分2种,一种是普通安装,另一种是使用-w(--workspace-root)参数,它代表把依赖安装到工作空间中。关于-w的作用,举个例子: 假如你使用以下命令,那么在整个工作空间内的所有组件都能直接使用react。 代码语言:shell 复制 ...
pnpm add @pnpm/logger@1 API mutateModules(importers, options) TODO link(linkFromPkgs, linkToModules, [options]) Create symbolic links from the linked packages to the target package'snode_modules(and itsnode_modules/.bin). Arguments:
可以看到,安装了两个相同版本的 f ,对应相同的软链接,但却分别拥有不同的名称: f@1.0.0_b@1.0.0+c@1.0.0 、 f@1.0.0_b@1.0.0+c@1.1.0 。这也是 pnpm 规则严格的体现:任何包都不应该有全局副作用。 总结 pnpm 使用软链接和硬链接的组合,同时采用了平铺的目录结构。这意味着所有的包都被存储在一...
C:\src>pnpm installinternal/modules/cjs/loader.js:883throw err;^Error: Cannot find module 'C:\Users\Bence\AppData\Roaming\npm\pnpm-global\4\node_modules\pnpm\bin\pnpm.js'←[90m at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)←[39m←[90m at Function.Module....