npm link用法个人总结

发布时间 2023-04-19 16:48:49作者: HandsomeGuy

1、什么时候使用npm link?

    npm link用来在本地项目和本地npm包之间建立连接,可以在本地进行模块测试。

    npm包在开发和迭代更新时,不适合直接发布到线上或者直接发布测试版本进行调试,会导致过程繁琐且版本号过多。

    此时我们就可以使用npm link命令将包放在node安装目录下的node_modules文件中,这样的话我们就可以直接进行本地调试、开发,非常方便。


 

2、工作原理

    npm link直接把包模拟成安装后的状态,就像我们平时install过一样,直接使用。

    需要注意的时候:

      npm link在目录中生成的并不是真实的文件,而是一个快捷方式,所以在我们修改包的代码逻辑时,都会实时更新(使用正在开发包的地方可以直接更新到最新逻辑,方便开发)

      该快捷方式指向当前执行npm link的目录

      如果开发的是node包,则执行的命令名和真实执行的文件入口,会根据项目package.json里的bin的配置来获取


3、npm link 使用

  3.1: 项目和npm包在相同目录下(相同的文件下)

    此时可以使用相对路径,只需要link一次就好了

    目录例如:

      - module

        - useNpmModule

        - npmModule

cd /module     // 进入开发的项目
npm link ../npmModule       // 软连接到使用npm包的目录

    npm link会在module项目中的node_modules目录下创建一个npmModule的软链接(类似windows的快捷方式),链接着module下的npmModule。

    当npmModule包开发调试时(useNpmModule中使用),可以在useNpmModule得到实时更新的npmModule

  3.2:项目和npm包不在同一目录(不同的文件中)

    useNpmModule:使用npm包的项目文件名

    npmModule:   npm包文件名

    第一步:先进入npmModule文件,然后执行npm link,对提示一个挂载的npm包名(也可在npm包中package.json文件的name属性,找到npm的名称)

1、 cd /npmModule
2、 npm link

    第二步:进入useNpmModule文件,然后执行npm link npm包名(通过包名建立连接)

1、cd useNpmModule
2、npm link npm包名

    工作原理详情:

      项目和npm包不在同一个目录下,需要先把npm包连接到全局,然后再把全局链接项目

      此时指定的 npm包名,在useNpmModule项目的node_module下创建了一个 npm包 的软链接,它链接到/user/local/lib/node_modules/npm包 (可以理解为链接到node安装目录下的node_modules文件中),然后再由/user/local/lib/node_modules/npm包下的软链接,链接到具体的代码目录下(npm包)

   3.3: 编写node模块

     如果是一个单独的项目,不和其他的项目在同一个目录下

     为了让其他目录下的项目,使用node模块,需要将node模块link到全局

     npm link前,需要在node模块的package.json里,配置bin字段

"bin": {
    "自定义的命令": "需要执行的脚本文件"                
}

    在node模块目录下,执行npm link(全局link 不需要添加任何参数)

1、cd 项目路径
2、npm link

4、卸载npm link 链接

  4.1、解除项目与模块的链接

1、 cd /useNpmModule  // 进入使用npm包的项目文件
2、 tnpm unlink npm包名

  4.2、解除npm包的全局链接

1、 cd /npmModule    // 进入npm包文件
2、 tnpm link npm包名    

 

参考资料:

  https://www.cnblogs.com/zhangzl419/p/15210835.html