
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.3.5 自定义安装
我们通过npm install命令实现的最常见的功能是,把Node.js模块里的文件下载并安装到node_modules下面,这很容易理解,那么如果想要自定义安装该怎么办呢?
以安装pre-commit模块为例,先通过npm install命令安装pre-commit模块,然后同时执行安装脚本向.git/hooks目录下写入pre-commit文件,这个文件是一个shell脚本,封装了具体的实现逻辑。
为了理解实现原理,我们可以看一下pre-commit模块的源码,在package.json中的scripts字段里找到自定义install命令,代码如下。

在执行npm install pre-commit命令时会下载pre-commit模块源码,同时执行install.js脚本里的内容。也就是说,在install.js脚本里可以实现写入pre-commit文件的操作。扩展一下,此处可以实现很多操作,如执行Node.js脚本、编译C语言扩展程序等,甚至为其他语言提供包管理机制。