07月26, 2016

Node.js npm 详解(2)

安装Node和npm前半部分的配置可以参考之前我的两篇文章:

  1. Hello Node
  2. Node npm 详解(1)

四、本地模式和全局模式

如果你了解环境变量里面的,用户变量和系统变量。可以做一个类比进行理解。当然,windows上面的环境变量概念比较好理解。

1. 本地模式

本地模式下安装包的特点

  • 不会写入PATH变量(也就是环境变量,无法在全局引用该安装包,不能在终端直接使用)
  • 能够在不同的node_modules目录,安装不同版本的安装包
  • 能够通过require()来引入安装包

使用“npm install [@]”安装的包,默认会安装在当前目录的“node_modules”目录下(如果没有该目录,在执行命令的时候,会自动帮你创建)。

//专业的写法
./node_modules

(1)默认采用本地模式安装

npm install <pkg>

(2)信息写入package.json文件

npm install <pkg> --save

这个命令在安装包的同时,将信息写入package.json。

@version表示指定安装包的版本号,是可选项目,默认安装最新版本。

项目路径中如果有package.json文件,使用npm install方法就可以根据dependencies配置安装所有的依赖包。

如果这样配置,当代码提交到github时,就不用提交node_modules这个文件夹。

2. 全局模式

全局模式安装包的特点

  • 不需要重复安装
  • 不能使用require()引入
  • 会写入PATH,并建立软链接,使用命令行的方式使用
  • 不方便指定特定的版本运行

(1)采用全局模式安装

npm install -g <pkg>

(3)在mac中全局的目录

//安装包所在目录
/usr/local/lib/node_modules/
//运行命令的软链接所在目录
/usr/local/bin

(4)查看安装包路径

//查看当前包的安装路径
npm root
//查看全局的包的安装路径
npm root -g

(5)设置全局模式安装目录

//设置后,以全局模式将会安装在此目录中,不过需要手动加入PATH,切记
npm config set prefix <global dir>
//设置npm缓存文件的存放路径
npm config set cache <cache dir>

(6)查看默认模式

//默认返回:false    
$ npm get global
$ npm config get global

(7)设置为默认以全局模式安装,就不用每次加"-g"参数啦。

$ npm set global=true
$ npm config set global=true

npm set / npm config set与npm get / npm config get的区别和联系单独写吧。其实不难,只是需要实验才能得出结果,这里区别很细节。

准备把文章拆分成几篇,写得详细了一点,这里写的话篇幅就太长了。

本文链接:http://www.60sky.com/post/node-npm-detail-2.html

-- EOF --

Comments