npm
node版本:v16.14.0
install流程:
检查config这一步需要check .npmrc文件,依次从用户项目的.npmrc->家目录的npmrc->全局npmrc(比如nvm 16.14.0版本folder中)->内置npmrc
查看cache目录:npm config get cache
mac上一般在~/.npm目录中
清空cache:
npm cache clean --force
这个命令的作用就是删除_cacache目录下的所有包。
执行这个命令,然后执行npm install lodash-es, 这个时候查看_cache目录。
解压如图所示
打开50aa6cae0ce2b28bd3e28c01e533a9631bab7f2400211c680d8603efa6d4长这样
PS: 今天想研究下如何debug npm install,因为这个install程依赖了pocate这个包, 我想一步一步看这个执行过程是怎么样的,结果google了半天还是没找到解决办法,有人知道怎么搞么?
yarn
install:
cache目录:yarn cache dir
得到~/Library/Caches/Yarn/v6, 这里可以看到和npm的cache目录结构是明显不一样的。
如何查看yarn.lock文件结构,会发现长这个样子:
lodash-es@^4.17.21:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
pnpm
获取全局store路径执行 pnpm store path
得到~/Library/pnpm/store/v3,
里面folder有点多,暂时不清楚那么多文件是干啥的,先用find命令找到lodash的json再说。
format一下,lodash-es这个包里的每个文件都被保存了起来,给了integrity
先写到这,等之后研究更深些的时候再来更新这个。