Open XXHolic opened 4 years ago
再次碰到调试 npm 本地包的情况,一时想不起来,看了下文档,实际操作了一下,发现了一些文档上没明写的东西。
根据文档介绍,包的链接分为两步。
在一个包文件夹内执行 npm link 将在全局文件 {prefix}/lib/node_modules/ 内,创建一个符号链接(symlink),这个链接指向 npm link 命令执行的地方。
npm link
到其它目录下,执行 npm link packageName 命令,将会创建一个从全局安装的 packageName 到当前文件内的 node_modules 下的符号链接。
npm link packageName
需要注意的的是, packageName 是取自包的 package.json 中 name 字段,不是文件夹名称。
包的名称可能有作用域前缀,如果有, packageName 也要对应加上。
基于文档,结合实际的操作,对照看下产生的效果。
首先在包根目录下面执行 npm link 命令,出现下面的提示:
到对应的目录下,发现生成了提示中所说的文件,就是文档中所说符号链接(symlink):
试着改了一下本地的源文件,发现全局包里面对应的文件内容也跟着变化。
然后到项目中执行 npm link packageName 指令,出现了下面的提示:
到 node_modules 下发现对应的依赖包已经发生了变化:
这里的包跟全局那个生成的包是一样的,包更新了,本地看没什么效果,原因是本地的 sever 有缓存,需要重新启动一下。注意这个文件夹图标多了一个箭头的标记,未 link 之前没有这个。
link
重启服务后,到源库修改源码,发现项目 node_modules 下同步了修改的内容,webpack 也检测到变化,自动刷新。
修改好后,想要恢复到原本的包,解除 link 该怎么做?很奇怪,在 npm 官方文档上没找到说明。
到项目下执行下面的命令:
npm unlink --no-save package && npm install
npm uninstall 文档中可以发现,unlink 其实是 uninstall 的别名,实质上也是删除了包。
unlink
uninstall
包不需要的 link 的时候,建议也解除,到包目录下执行下面的命令:
npm unlink
引子
再次碰到调试 npm 本地包的情况,一时想不起来,看了下文档,实际操作了一下,发现了一些文档上没明写的东西。
介绍
根据文档介绍,包的链接分为两步。
第一步
在一个包文件夹内执行 内,创建一个符号链接(symlink),这个链接指向
npm link
将在全局文件 {prefix}/lib/node_modules/npm link
命令执行的地方。第二步
到其它目录下,执行
npm link packageName
命令,将会创建一个从全局安装的 packageName 到当前文件内的 node_modules 下的符号链接。需要注意的的是, packageName 是取自包的 package.json 中 name 字段,不是文件夹名称。
包的名称可能有作用域前缀,如果有, packageName 也要对应加上。
实践
基于文档,结合实际的操作,对照看下产生的效果。
运行环境
操作
首先在包根目录下面执行
npm link
命令,出现下面的提示:到对应的目录下,发现生成了提示中所说的文件,就是文档中所说符号链接(symlink):
试着改了一下本地的源文件,发现全局包里面对应的文件内容也跟着变化。
然后到项目中执行
npm link packageName
指令,出现了下面的提示:到 node_modules 下发现对应的依赖包已经发生了变化:
这里的包跟全局那个生成的包是一样的,包更新了,本地看没什么效果,原因是本地的 sever 有缓存,需要重新启动一下。注意这个文件夹图标多了一个箭头的标记,未
link
之前没有这个。重启服务后,到源库修改源码,发现项目 node_modules 下同步了修改的内容,webpack 也检测到变化,自动刷新。
修改好后,想要恢复到原本的包,解除 link 该怎么做?很奇怪,在 npm 官方文档上没找到说明。
解除 link
到项目下执行下面的命令:
npm uninstall 文档中可以发现,
unlink
其实是uninstall
的别名,实质上也是删除了包。包不需要的 link 的时候,建议也解除,到包目录下执行下面的命令:
参考资料
:wastebasket:
最近听了杨照主讲《史记》音频,对秦始皇的**坑儒**有了不一样的认知。 在《史记》里面,秦始皇想长生不死,养了很多方式,有一天有 2 个方式议论后,觉得不能继续呆在秦始皇身边了,就跑路了。秦始皇知道后很生气,就调查哪些方式弄虚作假,一下子牵连出了 460 人,都坑杀了,并昭告天下。**坑儒**就是指的这个事情。 上面只是大概说了一下,详细的可以去听听。