❝
原文链接:Understanding npm-link[1],2018.10.19,by Franziska Hinkelmann
❞
做开发时,有时候会碰到要同时修改应用程序和依赖库代码的情况,来做功能验证和问题修复。如果你是一个三方库的作者,在本地开发完某个功能后,还没有很好的测试覆盖率,这个时候在应用程序中测试可以作为对库代码进行端到端测试的手段,不过在修改的过程中会碰到问题。
你可以选择在 node_modules
做修改,并在完成后手动将更改复制到依赖库的 git 仓库中,但还有一种更简洁的方法:npm link
。
用法
npm link
的过程我们叫 Package linking,共分 2 个步骤:
-
首先,使用 npm link
在依赖库中创建全局符号链接。「符号链接(symlink)」是指向系统上的另一个目录或文件的快捷方式 -
然后,使用 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
的符号链接。
你可以像往常一样在 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 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
。
参考资料
Understanding npm-link: https://medium.com/dailyjs/how-to-use-npm-link-7375b6219557
原文始发于微信公众号(写代码的宝哥):使用 npm link 在本地轻松测试你的依赖库
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/243922.html