Skip to main content

Command Palette

Search for a command to run...

[前端包管理] 本地开发和调试 npm 包

Published
•1 min read•View as Markdown
[前端包管理] 本地开发和调试 npm 包

本地开发 npm 包的时候通常都需要 link 来进行调试

对于不同的包管理软件,有不同的方式

一些概念

在当前目录下直接 link,就可以把当前目录下的 npm 包 link 到全局的 node_modules 中;然后在需要使用本地的 npm 包进行调试的目录下,执行 npm link <package-name>,就可以 link 到本地的包进行调试

被 link 的包会被存放到全局的 node_modules 下,具体的路径是 --- {prefix}/lib/node_modules/<package> ;{prefix} 可以用 npm prefix -g 进行查看

同时,一些 bin 的命令行工具也会被 link 到 {prefix}/bin/<bin-name> 中;这里可以通过输出 $PATH 来查看,可以看到我的 node 的全局 bin 就是被 nvm 写入到了 $PATH 中,所以系统是可以找得到的:

/Users/lordmoon/.nvm/versions/node/v16.20.2/bin:

像上面这种使用到 nvm 来管理的,建议 link 的时候直接 link 绝对路径,不然在切换 node 版本的时候,全局的 node_modules 和 bin 路径和 $PATH 都被更新了,容易有异常

另外,由于正常情况下,npm link 是不会修改 package-lock.json 的,所以在 link 之后执行 npm install 是会覆盖 link 的;所以需要先 install 再 link

在 yarn 1 和 yarn 3 版本中,link 的使用方式有些不同;yarn 1 是不支持像 npm 那样直接 link 到一个路径文件夹的,yarn 3 是支持的,但是貌似有些问题:

可以看下这些 issues :

https://github.com/yarnpkg/berry/issues/90

https://github.com/yarnpkg/berry/issues/4870

https://github.com/yarnpkg/berry/pull/98

里面还翻到了 yarn 的维护者对于 yarn 3 会修改 package.json 的回复(2025 年 3 月):

More from this blog

[Vite] 处理静态资源路径

静态资源路径的种类 从路径的格式上来说,vite 的静态资源路径有两种:相对路径 和 绝对路径 从路径的类型上来说,vite 的静态资源路径有两种:基于 http URL 的 和 基于文件系统的 相对路径 在 vite 文档的表述中,相对路径常用于在 “嵌入式” 的页面中使用: 这里的 “嵌入式” 指的是例如浏览器插件这种,将一个页面嵌入到一个网页中的形式 绝对路径 绝对路径指的是 “以根路径为起点” 而表示的路径 绝对路径在 “基于 http URL” 和 “基于文件系统” 的情况下,最终表...

Oct 2, 20251 min read

[Node] Mac m 芯片使用 node 14

最近在 m 芯片的 mac 电脑上使用 node 14 版本,遇到了芯片架构不兼容的错误,所以记录一下解决问题的过程 遇到的问题 原因是 node 14 版本只支持 x86_64 架构的芯片,所以使用 arm 架构的 m 芯片就会报错 解决方案 前置知识 在 m 芯片的 mac 上,node 16 及以上的版本全面支持了 arm 芯片架构;如果要安装 16 以下的版本,需要通过 Rosetta 2 转译执行 步骤 按照 nvm 官方的步骤进行:https://github.com/nvm-sh/...

Jul 11, 20251 min read
[Node] Mac m 芯片使用 node 14

[其他] WSL Interop

最近在 wsl 下使用 code <dir> 命令拉起 windows 下的 vscode 客户端时,遇到了错误,搜了一下发现是 wsl 和 windows 的互操作出现了问题 这篇文章就来记录一下遇到的问题和相关的知识点 WSLInterop.conf 文件 WSLInterop.conf 文件是 WSL(Windows Subsystem for Linux)中的一个关键配置文件,它定义了 Linux 系统如何识别和处理 Windows 可执行文件 文件位置和基本作用 这个文件通常位于 /u...

Jul 11, 20252 min read
[其他] WSL Interop

lordmoon's blog

25 posts