01-NPM依赖包的管理工具

一、NodeJS环境

  • 什么是nodejs
   - 不是JS文件,也不是一个JS框架()
   - 而是Server side Javascript runtime, 服务端的一个JS运行时
   - 可以在node运行JS代码
   - node中只能运行ECMAScript,无法使用 BOM 和 DOM
   - 目前我们的JS是运行在浏览器内核中
   - PHP是什么?是一门脚本语言也是一个运行环境

node是一个基于chrome v8引擎的javascript的运行环境。node使用事件驱动、非阻塞式I/O的模型,使其轻量又高效。node的包管理器npm,是全球最大的开源库生态系统。

二、Node环境搭建

  • mac node (建议使用nvm安装,方便版本切换)
    pkg安装包

  • mac NVM(Node Version Manager)

    $ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.30.2/install.sh | bash
    $ echo '. ~/.nvm/nvm.sh' >> .bash_profile
    $ nvm install stable
    $ nvm alias default stable
    
  • Windows node (建议使用nvm安装,方便版本切换)
    msi_x64 64位安装包
    msi_x86 32位安装包

  • windows nvm

    • 下载nvm包,选择第一个: nvm-noinstall.zip
    • 将文件内容解压到例如 c:\dev\nvm (将文件拷贝到c:\dev\nvm,解压到当前文件夹)
    • 双击install.cmd不用输入,直接回车,之后再c盘中会生成一个settings.txt文件,将该文件剪切到c:\dev\nvm目录中
  root: C:\dev\nvm
  path: C:\dev\nodejs
  arch: 64 
  proxy: none 
  node_mirror: http://npm.taobao.org/mirrors/node/ 
  npm_mirror: https://npm.taobao.org/mirrors/npm/
  • 配置环境变量。刚才点击install.cmd文件,会在环境变量的系统变量中生成两个环境变量:NVM_HOMENVM_SYMLINK;修改这两个变量值,NVM_HOME变量值为: C:\dev\nvm;NVM_SYMLINK变量值为: C:\dev\nodejs; ,在path后面添;%NVM_HOME%;%NVM_SYMLINK%;
  • 打开命令行: nvm v可以看到nvm版本信息,即表示安装完成;
  • 如果没有安装node,可以通过nvm install latest,下载node最新版本;
第一次下载,在使用use之前,`C:\dev`目录下没有nodejs文件夹,输入例如nvm use 6.3.0后,久会在`C:\dev`目录中看到nodejs文件夹;
nodejs不是单纯的文件夹,它是一个快捷方式,指向`C:\dev\nvm`中v6.3.0文件夹;
`C:\dev\nvm`文件夹下的vx.x.x即nodejs对应版本;

nvm list 查看已经安装的版本(版本号前面有带*,表示当前使用版本)
nvm install 6.3.0 安装对应node对应版本
nvm use 6.3.0 使用对应node版本

nvm --- node version manager(node版本管理器),因为NODE版本比较多,开发人员可能依赖很多版本;通过NVM,可以轻松切换于不同的版本之间;

三、NPM

NPM官网

  • NPM是什么
    Node Package Manager即是Node应用程序依赖包的管理工具,方便于安装卸载更新等操作;
    NPM是 Node 的开放式模块登记和管理系统,亦可以说是一个生态圈,一个社区;

  • 为什么使用NPM

  - 包很多
  - 场景:我需要用一个A,A依赖B,B依赖C
  - 常见的包管理工具都有循环依赖的功能
  - 你只需记住你要什么东西
  • 常见的NPM操作

// 引导创建一个package.json文件(安装包的信息可保持到项目的package.json文件中,以便后续的其它的项目开发或者他人合作使用,也说package.json在项目中是必不可少的)
$ npm init

// 安装一个包,默认安装最新稳定版本
$ npm install package_name // 本地安装
$ npm install package_name -g // 全局安装

// 安装特定版本的包
$ npm install package_name@版本号

// 卸载
$ npm uninstall package_name // 卸载本地
$ npm uninstall package_name -g // 卸载全局

// 更新
$ npm update -g

// 查看依赖和它们之间的关系
$ npm ls
// 查看主要的依赖
$ npm ls --depth=0
// 查看全局的所有包()
$ npm ls --depth=0 -g



> 每个版本的nodejs中,都会自带npm,为了统一起见,需要安装一个全局的npm工具是有必要的,因为我们需要安装一些全局的其他包,不会因为切换node版本造成原来下载过的包不可用。
`$ npm config set prefix 'C:\dev\nvm\npm'`
// 上述是配置npm的全局安装路径,然后用户文件夹下会生成一个.npmrc的文件,文件内容为: `prefix=C:\dev\nvm\npm`
// 如果不使用上面方法,可以手动在用户文件夹下(C:\User\liming)创建.npmrc文件,文件内容为: `prefix=C:\dev\nvm\npm`

> `$ npm install npm -g `
// 下载npm包,在`C:\dev\nvm\npm`目录中可以看到下载中的文件,以后用nmp安装包时加上`-g`就可以把包安装在`C:\dev\nvm\npm`的全局路径下
// 再为这个npm配置环境变量,变量名`NPM_HOME`,变量值`C:\dev\nvm\npm`;然后再path最前面添加`;%NPM_HOME%`,注意该变量一定是加载`%NVM_SYMLINK%`之前;
// 如果安装不了(npm镜像源默认是在国外),可以先执行安装cnpm工具,之后通过cnpm安装: `cnpm install npm -g`

>  `$ npm -v`
// 查看npm的版本,此时使用的都是统一的nmp包了

> `$ npm install -g cnpm --registry=https://registry.npm.taobao.org` 
安装cnpm工具,并设置淘宝的镜像库,中国版的npm镜像库,`https://registry.npm.taobao.org/`淘宝的,`https://cnpmjs.org/`cnpm工具的, 他们都是npm官方的一个拷贝,他们会每隔10分钟同步一次  【非必要操作,如果下载比较慢可以切换到国内镜像】
> cnpm工具包如何安装? `cnpm install page_name -g`即将npm换为cnpm即可


# 四、NRM
NRM(Node Registry Manager)即是方便管理NPM的镜像源选择;

$ npm install -g nrm // 安装nrm
$ nrm ls // 查看镜像源列表
$ nrm use taobao // 即使用taobao的这个镜像源
$ nrm test // 测试镜像源的速度


# 五、Bower
[Bower官网](http://bower.io/)
- 什么是Bower
web应用程序依赖项管理工具【包的管理工具,还是重复的轮子】

- 为什么使用Bower
方便便捷的方式管理包

- Bower安装
$ npm install bower -g

- Bower使用
$ bower install page_name

推荐阅读更多精彩内容