npm 包安装位置

官方文档:docs.npmjs.com/files/folde…

全局包安装位置

  • Unix

    npm install -g package # -> `{prefix}/lib/node_modules/package`
    
    # 为可执行文件在 `{prefix}/bin/` 目录中创建链接
    复制代码
  • Windows: {prefix}/node_modules/

    npm install -g package # -> `{prefix}/node_modules/package`
    
    # 为可执行文件在 `{prefix}/` 目录中创建链接
    复制代码

prefix: docs.npmjs.com/misc/config…

局部包安装位置

当执行 npm install foo@1.2.3 时:

  1. npm 从当前工作目录开始,在目录树中向上(父目录方向)查找:

    • 直到找到一个包含 package.json 文件或者 node_modules 目录的目录,则以该目录为 package_root,并停止查找。

    • 如果没有找到包含 package.json 文件或者 node_modules 目录的目录,则以当前工作目录为 package_root

  2. 安装 foo 包

    1. 将 foo 包的内容拷贝到 {package_root}/node_modules/foo

    2. {package_root}/node_modules/.bin/ 下创建相关可执行文件的链接。

  3. 安装 foo 包的依赖包

    假设 foo 包依赖 bar@1.2.3

    1. 如果 {package_root}/node_modules/ 中已经安装了 bar@1.2.3,则不再安装 bar@1.2.3

    2. 如果 {package_root}/node_modules/ 中已经安装了与bar@1.2.3 不同版本的 bar 包,则在 {package_root}/node_modules/foo/node_modules/ 目录中安装 bar@1.2.3

    3. 如果 {package_root}/node_modules/ 中还没有安装任何版本的 bar 包,则在 {package_root}/node_modules/ 中安装 bar@1.2.3

  4. 按 (3) 中的方法递归安装依赖包的依赖包。

scoped 包安装位置

对于 scoped 包,假设安装 @myorg/foo@1.2.3,与安装非 scoped 包 foo@1.2.3 相比,只是在 foonode_modules 中间多了一层 @myorg 目录:

  • npm install foo@1.2.3 -> .../node_modules/foo
  • npm install @myorg/foo@1.2.3 -> .../node_modules/@myorg/foo

转载于:https://juejin.im/post/5c999b30f265da611d7438c3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值