使用 npm link 在本地轻松测试你的依赖库

原文链接:Understanding npm-link[1],2018.10.19,by Franziska Hinkelmann

做开发时,有时候会碰到要同时修改应用程序和依赖库代码的情况,来做功能验证和问题修复。如果你是一个三方库的作者,在本地开发完某个功能后,还没有很好的测试覆盖率,这个时候在应用程序中测试可以作为对库代码进行端到端测试的手段,不过在修改的过程中会碰到问题。

使用 npm link 在本地轻松测试你的依赖库

你可以选择在 node_modules 做修改,并在完成后手动将更改复制到依赖库的 git 仓库中,但还有一种更简洁的方法:npm link

用法

npm link 的过程我们叫 Package linking,共分 2 个步骤:

  1. 首先,使用 npm link 在依赖库中创建全局符号链接。「符号链接(symlink)」是指向系统上的另一个目录或文件的快捷方式
  2. 然后,使用 npm link some-dep 指令告诉应用程序使用全局符号链接
cd ~/projects/some-dep
npm link  # 第 1 步
cd ~/projects/my-app
npm link some-dep  # 第 2 步

第 1 步做完后,会在全局创建一个指向当前依赖库目录的符号链接;第 2 步做完后,项目中所依赖的 some-dep 库的目录指向全局符号链接 some-dep 的符号链接。

使用 npm link 在本地轻松测试你的依赖库

你可以像往常一样在 some-dep 中进行编辑、转译、运行测试或提交。同时,my-app始终是使用本地最新的 some-dep 代码运行。由于这些符号链接是本地的,并不会被提交到 git。当开发完成后,发布 some-dep 的新版本或将其推送指定分支,在 my-app 的 package.json 文件中指定拉取该分支:

cd ~/projects/my-app
npm install -- save some-dep@fhinkel/some-dep#experimental-branch

Debugging

如果你使用 VSCode 并且想在 some-dep 中设置断点时,你需要在 my-app 的调试器中启用符号链接。通过设置下方的设置项来实现。

"runtimeArgs": [
  "--preserve-symlinks"
]

launch.json 中:

使用 npm link 在本地轻松测试你的依赖库

切换回正常的依赖关系

如何切换回正常的依赖关系?当您不再想使用某个依赖项的本地版本时,请删除符号链接。但要小心,npm unlink 其实是 npm uninstall 的别名,并不是 npm link 的反向操作。

cd ~/projects/my-app
npm uninstall --no-save some-dep && npm install 

而后载清理全局链接,尽管它的存在不会干扰我的应用程序。

cd ~/projects/some-dep
npm uninstall  # Delete global symlink

总结

掌握 npm link 这个两步骤的过程对任何 Node.js 开发人员来说都是一个有用的补充工具。该过程包括在依赖项中运行 npm link,并在应用程序中运行 npm link some-dep

参考资料

[1]

Understanding npm-link: https://medium.com/dailyjs/how-to-use-npm-link-7375b6219557


原文始发于微信公众号(写代码的宝哥):使用 npm link 在本地轻松测试你的依赖库

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/243922.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!