node环境及包管理

作者: 齐滇大圣 | 来源:发表于2017-08-09 22:20 被阅读2028次
关系图

什么是包管理工具

包管理工具其实就是对一些程序包进行安装、升级、卸载的管理工具。程序员在编程的时候常常会用到一些工具,类似于我们在电脑上安装一些软件。这些工具或者一些源码包都是通过命令行来下载安装使用的。所以就需要一个管理工具对这些安装包进行管理。

在系统层面,我们进行开发时需要给系统安装一些环境,或者开发工具之类的,就会需要用到一些依赖包。一般系统都会内置这些包管理工具,比如Red hat有yum,Ubuntu有apt-get,Mac OS有Homebrew

又比如我们进行程序开发时常常会依赖第三方的包,所以也会有包管理工具进行管理。如iOS第三方库管理工具:cocopods,安卓有gradle,java有Maven

node也有自己的包管理工具,最为一个前端新人,刚开始对node相关的各种包管理工具会比较混乱,因为这类工具挺多的,如npm、nrm、nvm、n。还有对应的安装路径,镜像源等。所以这里对这些工具做一个简单梳理和介绍。首先我们要弄清楚npm、nrm、nvm、n、node之间的关系。我是在Mac OS上进行使用的,所以相关的还要加上Homebrew。


什么是Node.js

Node.js是一个能够在服务器端运行JavaScript的开放源代码、跨平台JavaScript运行环境。Node.js由Node.js基金会持有和维护,并与Linux基金会有合作关系。Node.js采用Google开发的V8运行代码,使用事件驱动、非阻塞和异步输入输出模型等技术来提高性能,可优化应用程序的传输量和规模。这些技术通常用于数据密集的事实应用程序。

以上解释来自维基百科,简单的说Node.js就是基于V8引擎的JavaScript运行环境。用于开发服务端应用。


安装Node.js环境(HomeBrew)

在Mac上我们安装Node.js环境使用HomeBrew。

brew link node
brew uninstall node
brew install node

安装好了之后我们输入which node能看到软链接的路径为/usr/local/bin/node

然后输入readlink /usr/local/bin/node读取软链接对应的相对路径为../Cellar/node/8.2.1/bin/node。即绝对路径/usr/local/Cellar/node/8.2.1/bin/node。这就是安装的node 8.2.1版本环境所在的路径。

管理Node.js版本(nvm)

因为有时候需要时常对node版本进行切换测试兼容性和一些模块对node版本的限制。所以需要一个工具对node的版本进行管理。一般目前主流的node版本管理工具有两种nvmn

管理 node 版本,选择 nvm 还是 n?这篇文章对nvmn的选择和优劣进行了解释。

我这里使用nvm进行管理Node.js版本。可以nvm git地址里查看使用,或者安装完成后输入nvm直接列出所有的使用命令。

下载nvm

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash

配置环境变量

完成后nvm就被安装在了/.nvm下啦,接下来就需要配一下环境变量了,我使用的是`zsh`,所以打开/.zshrc,在最后一行加上:

export NVM_DIR="/Users/dasheng/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm

这一步的作用是每次新打开一个bash,nvm都会被自动添加到环境变量中了。
完成后输入source ~/.zshrc重新启动一下配置。

安装对应版本的node

nvm install v8.2.1

当前使用的node软链接路径

which node

我们能看到当前的路径就变成了/Users/dasheng/.nvm/versions/node/v8.2.1/bin/node

查看当前node版本

nvm version
或
node -v

查看安装的所有node版本

nvm ls

比如我这里安装了多个版本v8.2.1v7.10.0v8.2.0。nvm默认会使用你最新安装的那个版本。比如我这里最后安装的是v8.2.0,那使用nvm version查看当前的node版本就是v8.2.0

切换node版本

nvm use v7.10.0

NodeJS包管理和分发工具(npm)

npm介绍

我们上面是安装好了node的基本环境,但是我们平时会使用到一些第三方的node模块,这时就要包管理工具对这些模块进行下载使用了。

NPM的全称是Node Package Manager,是一个NodeJS包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准。

新版的node默认就会带有npm,npm和那些第三方的模块都默认安装在node对应版本的/lib/node_modules目录下。比如我使用npm安装es6-promiseksend

npm install es6-promise -g
npm install ksend -g

这里包的安装分为本地安装和全局安装:

npm install es6-promise          # 本地安装
npm install es6-promise -g       # 全局安装

全局安装就是安装在如上图所示的node当前版本对应的node_modules中。

本地安装

本地安装是安装在当前所在文件夹的node_modules,同时当前文件夹需要有一个package.json。比如我在test文件夹中创建package.json文件。内容如下:

{
  "name": "test",
  "version": "0.0.1",
  "private": true
}

然后在test目录下运行npm install es6-promise。这个es6-promise就会被安装在这个test目录下的node_modules。同时package.json内容也会相应自动的改变:

{
  "name": "test",
  "version": "0.0.1",
  "private": true,
  "dependencies": {
    "es6-promise": "^4.1.1"
  }
}

其实我们可以把test也当成一个node的第三方包,然后他有一个package.json文件,里面描述了这个包的作用、作者、地址、以及这个包所依赖的包等。
所以只要有这个package.json,在dependencies里写上所依赖的包,运行npm install,就会把所有依赖的包安装在test/node_modules目录下了。

相关文章

npm 模块安装机制简介这篇文章是对npm的机制的介绍。

关于npm的使用可以看NPM 使用介绍


NPM源管理器(nrm)

npm默认的源是https://registry.npmjs.org/,国内下载安装一些依赖包的时候会特别慢。所以一般会使用一些国内的镜像源,很多都是使用的淘宝的镜像源https://registry.npm.taobao.org。而为了管理切换这些镜像源就有了nrm

安装

npm install -g nrm

列出所有的源

nrm ls

* npm ---- https://registry.npmjs.org/
  cnpm --- http://r.cnpmjs.org/
  taobao - https://registry.npm.taobao.org/
  nj ----- https://registry.nodejitsu.com/
  rednpm - http://registry.mirror.cqupt.edu.cn/
  npmMirror  https://skimdb.npmjs.com/registry/
  edunpm - http://registry.enpmjs.org/

添加新的源

nrm add taobao https://registry.npm.taobao.org/

切换源

nrm use taobao

删除源

nrm del taobao

测试速度

nrm test

参考文章

管理 node 版本,选择 nvm 还是 n?
node版本管理工具nvm-Mac下安装及使用
npm配置镜像、设置代理

相关文章

  • Vue搭建

    -- Vue 环境搭建及项目创建 -- 环境需求1、需要node.js 环境2、npm - node.js 包管理...

  • cesium编程入门(二)环境搭建

    环境搭建 环境搭建 编译 node 安装 Node.js安装包及源码下载地址为:https://nodejs.or...

  • Vue环境配置

    Vue环境配置 安装node.js sudo apt install nodejs 安装node包管理npm,及国...

  • node版本管理工具nvm和npm

    nvm的安装详解 nvm管理node版本,npm管理node包 npm的使用 npm安装和环境变量设置 安装npm...

  • node环境及包管理

    什么是包管理工具 包管理工具其实就是对一些程序包进行安装、升级、卸载的管理工具。程序员在编程的时候常常会用到一些工...

  • Anaconda管理包及环境

    管理包 安装了 Anaconda 之后,管理包是相当简单的。要安装包,可以直接在终端中键入 conda insta...

  • node及npm开发环境版本管理

    node开发环境版本管理 针对node环境的管理 node开发跟php开发一样面临的一个问题时node runti...

  • Grunt(构建工具)

    第一步 安装node.js到node官网下载安装包,安装包已内置npm包资源管理器,安装即可! 第二步 执行配置及...

  • Mac 上安装node、npm

    对于前端开发者,node、npm是必备安装环境。目前,最推荐的使用nvm进行node版本管理及对应版本的npm安装...

  • npm cnpm的区别

    npm ( node package manager ) 是nodejs 的包管理器,用于node插件管理 ( 包...

网友评论

    本文标题:node环境及包管理

    本文链接:https://www.haomeiwen.com/subject/xcqcrxtx.html