补一下记录。
要在本地调试 npm 包,一般可以按照以下步骤进行操作:
-
创建项目目录和包: 在合适的文件夹中创建一个新的文件夹,作为项目目录。然后在项目目录中使用命令行运行以下命令创建一个新的 npm 包:
mkdir my-package cd my-package npm init
按照提示填写 npm 包的信息。
-
编辑代码: 在项目目录中编辑包的代码,可以使用任何文本编辑器。确保代码是可以运行的,并且可以被外部项目引用。
-
链接本地包: 使用 npm 的
npm link
命令将本地包链接到全局 npm 包安装中,使得其他项目可以像引用正常的 npm 包一样引用包。在包的项目目录中运行:
npm link
如果使用的 yarn 可以用
yarn link
-
创建测试项目: 在另外一个文件夹中创建一个用于测试的新项目,然后在该项目中使用以下命令将本地包链接到该测试项目:
mkdir my-test-project cd my-test-project npm init npm link my-package
如果使用的 yarn 可以用
yarn link my-package
这会将本地包链接到测试项目的
node_modules
目录中。 -
测试和调试: 在测试项目中,你可以像使用任何其他 npm 包一样使用本地包。修改本地包的代码后,重新构建、测试和调试。任何对本地包的更改都会立即反映在测试项目中。
-
取消链接(可选): 在完成调试后,如果你想要断开本地包和测试项目之间的链接,可以在测试项目中运行以下命令:
npm unlink my-package
或者
yarn unlink my-package
在本地包项目目录中运行以下命令来取消将本地包链接到全局 npm 包安装中:
npm unlink
或者
yarn unlink
上述方式由于测试项目和 npm 属于不同的项目,当安装同一个依赖但版本不同时就会存在多个副本,刚好这个依赖又不支持多例这时应用就会报错,特别是在 react 项目开发的时候,具体报错信息和解决方法:解决 npm link 导致的 react Invalid hook call 错误
更好的调试方案:使用 yalc,具体可看下面参考资料。
参考资料