场景:在很多公司,都有自己封装的工具库或者组件库,那么在本地调试这些库的时候,该如何做到呢?
1.概念介绍
首先你必须知道一个概念,就是 nodejs 中对于包的管理。nodejs中的包管理工具就是npm。许多时候开发中并不满意npm的安装包的速度,所以也会安装cnpm or yarn这类全局包,进行包管理。
- 全局包安装在哪呢?
运行命令:
npm config list
# 或者
npm config ls -l
# 在输出的内容中找到下面这段代码,"C:\\Program Files\\nodejs" 就是全局包安装的路径
:prefix = "C:\\Program Files\\nodejs"
- 如何安装全局包
npm install -g xxx;
-
如何将本地包拷贝到全局包路径下呢?
no,no,no,一定不是你想的那样!把整个文件夹拷贝到
"C:\Program Files\nodejs"目录下。
作为程序员,我们肯定不会用这么粗鲁的手段解决问题。
- 首先cd 到你的本地包目录下
cd packages/Utils
- 运行以下命令,既可以将本地包安装到全局目录下。
npm link
2.实战演练
假设我们现在有本地依赖包
utils, 本地项目study;
- 链接(注册)项目
cd work/utils //进入项目目录`
yarn link //注册该项目
- 项目内引用
cd study //进入目标项目
yarn link utils //建立链接
yarn install // 以防万一
-
指向src目录
- 使用babel-plugin-import的情况
extraBabelPlugins: [ [ "import", { libraryName: "utils", //指向src` libraryDirectory:"src", style: true, }, "utils", ] ]- 不使用babel-plugin-import按需引入的情况。修改位置:utils的package.json内,main指向src下的入口。记得本地调试完要改回来哦。
{ "main":"src/index.ts" } -
项目内取消引用(调试结束)
cd work/utils
yarn unlink utils
yarn install --force
- 取消链接
以后还打算用的话可以跳过这步保留链接
cd work/utils // 进入包目录
yarn unlink // 取消link,之后不会再link到
-
注意事项
如果项目内指向了src,修改依赖包里的代码后,在目标项目里没有及时更新最新的代码,建议修改依赖包的代码后重新加载一下项目,在依赖包项目上右键有一个reload from Disk的操作选项;
文章是自己总结写的,如果有存在不足之处,欢迎留言。谢谢!