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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容