在本地开发npm包的时候,我们可以使用npm link
命令,将npm包模块链接到运行项目中去,方便地对模块进行调试和测试,下面举例说明:
我们现在有两个项目
local-dev
本地开发包run-pro
运行项目,用来测试我们开发的包
在local-dev
下执行npm init -y
生成一个默认的包配置文件package.json
,在目录下新建index.js
如下,写个简单的时间戳转换为时间函数
1 | function timeStampToTime(timestamp){ // 时间戳转为时间 |
然后执行 npm link
命令,local-dev
会根据package.json
上的配置,被链接到全局,路径是{prefix}/lib/node_modules/<package>
,这是官方文档上的描述,我们可以使用npm config get prefix
命令获取到prefix
的值(我使用的是windows,实际被链接到的路径是{prefix}/node_modules/<package>
)
我们可以看到,已经在这个目录下面生成了一个local-dev
的快捷方式
再进入run-pro
,执行npm init -y
生成包文件,接着执行npm link local-dev
可以看到在这个项目的node_modules
目录下生产了一个local-dev
的快捷方式
现在run-pro
这个项目就可以引用这个local-dev
这个模块了
我们在run-pro
的目录下新建index.js
文件,内容如下
1 | let timeStampToTime = require('local-dev'); |
然后执行node index.js
,可以看到命令行已经打印出函数的执行结果了
1 | $ node index.js |
然后,我们修改下local-dev
中的index.js
文件的日期函数,返回结果就修改成返回斜线格式的日期
1 | let time = year + '/' + month + '/' + day + ' ' + hour + ':' + sec + ':' + sec; |
再回到run-pro
目录下执行index.js
,可以看到,返回结果已经变成了斜线的日期
1 | $ node index.js |
看到了吧,所有对local-dev
的修改会被直接映射到run-pro/node_modules/local-dev