Skip to content

如何在本地调试npm包 #13

@allenGKC

Description

@allenGKC

image

背景

最近项目结束,准备优化一下webpack,公司内部将打包工具单独抽出来作为npm包引入,既然要优化打包,必然涉及到要本地化调试npm包,下面介绍一下正确的✅调试姿势。

解决方案

假设有一个已经编写好的本地node包test-npm-util包(github上的包同理)和一个测试该包的项目my-project在同一个文件夹下project下,有以下两种方式可以在my-project项目中测试本地的allen-npm-util包

|-- project
    |-- my-project
        | -- package.json
    |-- test-npm-util

使用相对路径安装test-npm-util测试

进入项目目录,按照相对路径找到test-npm-util包,npm install直接安装。

cd my-project
npm install ../test-npm-util

然后进入my-project中的node_modules文件夹检查是否安装成功,一般情况下只要路径正确,node包编写正确,都会安装成功,这样就可以在my-project中使用test-npm-util。

const xcxutil = require('xcxutil');

使用 npm link 连接到全局测试

上面的方法的前提是node包和测试项目在同一个文件夹下,所以很方便的就找到路径,但很多情况是我们本地项目众多,分布在不同的文件夹下,所以找路径就很麻烦了,因此推荐使用npm link这种将node包连接到全局的方式,关于npm link的原理可以参考npm link官网

cd test-npm-util
npm link

执行完会得到下面的输出:

/Users/allen/.nvm/versions/node/v10.0.0/lib/node_modules/test-npm-util -> /Users/allen/project/test-npm-util 

意思是将project下的test-npm-util连接到全局的node_modules下,我们进入全局node_modules包下也可以查看到test-npm-util包

然后在my-project中也link一下该包即可测试使用

cd my-project
npm link test-npm-util

这样test-npm-util就被安装到my-project下啦,在test-npm-util下的修改也会同步到my-project下,就可以实现本地测试了。

如果想取消在全局的连接也非常的简单:

cd test-npm-util
npm unlink

总结

以上就是npm包本地调试的方法,希望对你有帮助,感谢阅读。

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions