npm包安装与npm link

npm包安装的两种方式

全局安装

  • npm install <package-name> -g
  • 意义:将安装的包作为一个命令行工具,在任意目录下都可以访问调用
  • 安装路径:默认安装在 /usr/local/lib/node_modules下,可以通过配置安装到其他路径下。如通过nvm(node版本管理工具)可以配置到对应的node版本下面

局部安装

  • npm install <package-name>
  • 意义:在当前目录下,使用require语句加载
  • 安装路径:在当前目录下的node_modules目录中

Mac中的Shell与node

  • Shell中在终端可以直接敲的命令,其实是在执行
    • /bin 目录下的脚本
    • /usr/bin目录下的脚本
    • /usr/local/bin目录下的脚本

这些脚本路径是由/.etc/paths文件(Mac环境变量设置文件)内容来指定。另外,username/.bash_profile文件也可以配置环境变量,该文件在用户目录下。

npm全局安装与环境变量

当我们在npm install -g的时候,其实是将相关文件安装在/usr/local/lib/node_modules目录下,同时在全局命令/usr/local/bin目录下会有一个映射脚本,将其指向/usr/local/lib下的真实文件。这么做的好处是,可以在保证只有一份可执行文件的前提下,给命令取别名。

npm link

参考
npm link 就像做了npm install -g,唯一的区别是,npm link/usr/local/lib 下的 node_modules 里不是存的真实的文件,而是存了一个快捷方式,指向你当前执行 npm link 的目录。
如果开发的是node包,则执行的命令名真实执行的文件入口,会根据项目的 package.json 里 bin 的配置来获取。

使用

进入node包的项目目录,输入npm link

全局link

测试 node 环境下运行的包时,需要使用全局 link​。​并且做npm link之前,需要在 package.json 里配置 bin 字段。

// package.json
"bin" : {  
	"your-command-name": "./path-to/your-command-entry-file"
}

在当前目录下,输入npm link。成功后,就可以直接在终端执行全局命令 your-command-name

项目下link

如果想要在项目中使用这个node包,如该node包是一个组件库,则需要两步link

  • 先将该node包进行全局link
  • 在项目中进行npm link package-name
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章