在公交车上刷微博,还是有很多同学在咨询:
于是我觉得应该写一篇文章解答所有这些起步问题,让新同学也能顺顺利利入门。
快速搭建 Node.js 开发环境
如果你想长期做 node 开发, 或者想快速更新 node 版本, 或者想快速切换 node 版本,
那么请使用 nvm 来安装你的 node 开发环境, 保持系统的干净.
git clone nvm
直接从 github clone nvm 到本地, 这里假设大家都使用 ~/git
目录存放 git 项目:
$ cd ~/git
$ git clone https://github.com/creationix/nvm.git
配置终端启动时自动执行 source ~/git/nvm/nvm.sh
,
在 ~/.bashrc
, ~/.bash_profile
, ~/.profile
, 或者 ~/.zshrc
文件添加以下命令:
source ~/git/nvm/nvm.sh
重新打开你的终端, 输入 nvm
$ nvm
Node Version Manager
Usage:
nvm help Show this message
nvm --version Print out the latest released version of nvm
nvm install [-s] <version> Download and install a <version>, [-s] from source
nvm uninstall <version> Uninstall a version
nvm use <version> Modify PATH to use <version>
nvm run <version> [<args>] Run <version> with <args> as arguments
nvm current Display currently activated version
nvm ls List installed versions
nvm ls <version> List versions matching a given description
nvm ls-remote List remote versions available for install
nvm deactivate Undo effects of NVM on current shell
nvm alias [<pattern>] Show all aliases beginning with <pattern>
nvm alias <name> <version> Set an alias named <name> pointing to <version>
nvm unalias <name> Deletes the alias named <name>
nvm copy-packages <version> Install global NPM packages contained in <version> to current version
Example:
nvm install v0.10.24 Install a specific version number
nvm use 0.10 Use the latest available 0.10.x release
nvm run 0.10.24 myApp.js Run myApp.js using node v0.10.24
nvm alias default 0.10.24 Set default node version on a shell
Note:
to remove, delete or uninstall nvm - just remove ~/.nvm, ~/.npm and ~/.bower folders
通过 nvm 安装任意版本的 node
nvm 默认是从 http://nodejs.org/dist/ 下载的, 国外服务器, 必然很慢,
好在 nvm 以及支持从镜像服务器下载包, 于是我们可以方便地从七牛的 node dist 镜像下载:
$ NVM_NODEJS_ORG_MIRROR=http://dist.u.qiniudn.com nvm install 0.11.11
于是你就会看到一段非常快速进度条:
######################################################################## 100.0% Now using node v0.11.11
如果你不想每次都输入环境变量 NVM_NODEJS_ORG_MIRROR
, 那么我建议你加入到 .bashrc
文件中:
# nvm
export NVM_NODEJS_ORG_MIRROR=http://dist.u.qiniudn.com
source ~/git/nvm/nvm.sh
然后你可以继续非常方便地安装各个版本的 node 了, 你可以查看一下你当前已经安装的版本:
$ nvm ls nvm v0.8.26 v0.10.26 v0.11.11 -> v0.11.12
使用 cnpm 加速 npm
同理 nvm , npm 默认是从国外的源获取和下载包信息, 不慢才奇怪.
可以通过简单的 ---registry
参数, 使用国内的镜像 http://r.cnpmjs.org :
$ npm --registry=http://r.cnpmjs.org install koa
于是屏幕又哗啦哗啦地一大片输出:
$ npm --registry=http://r.cnpmjs.org install koa
npm http GET http://r.cnpmjs.org/koa
npm http 200 http://r.cnpmjs.org/koa
npm http GET http://r.cnpmjs.org/koa/download/koa-0.5.2.tgz
npm http 200 http://r.cnpmjs.org/koa/download/koa-0.5.2.tgz
npm http GET http://r.cnpmjs.org/escape-html
npm http GET http://r.cnpmjs.org/statuses
...
npm http 200 http://r.cnpmjs.org/negotiator
npm http 200 http://r.cnpmjs.org/keygrip
koa@0.5.2 node_modules/koa
├── koa-compose@2.2.0
├── statuses@1.0.2
├── finished@1.1.1
├── escape-html@1.0.1
├── only@0.0.2
├── debug@0.8.0
├── fresh@0.2.2
├── type-is@1.0.1
├── delegates@0.0.3
├── mime@1.2.11
├── co@3.0.5
├── accepts@1.0.1 (negotiator@0.4.2)
└── cookies@0.4.0 (keygrip@1.0.0)
但是毕竟镜像跟官方的 npm 源还是会有一个同步时间差异, 目前 cnpm 的默认同步时间间隔是 15 分钟.
如果你是模块发布者, 或者你想马上同步一个模块, 那么推荐你安装 cnpm cli:
$ npm --registry=http://r.cnpmjs.org install cnpm -g
通过 cnpm 命令行, 你可以快速同步任意模块:
$ cnpm sync koa connect mocha
呃, 我就是不想安装 cnpm cli 怎么办? 哈哈, 早就想到你会这么懒了, 于是我们还有一个 web 页面:
例如我想马上同步 koa, 直接打开浏览器: http://cnpmjs.org/sync/koa
或者你是命令行控, 通过 open 命令打开:
$ open http://cnpmjs.org/sync/koa
如果你安装的模块依赖了 C++ 模块, 需要编译, 肯定会通过 node-gyp 来编译,
node-gyp 在第一次编译的时候, 需要依赖 node 源代码, 于是又会去 node dist 下载,
于是大家又会吐槽, 怎么 npm 安装这么慢...
好吧, 于是又要提到 --disturl
参数, 通过七牛的镜像来下载:
$ npm --registry=http://r.cnpmjs.org --disturl=http://dist.u.qiniudn.com install microtime
再次要提到 cnpm cli, 它已经默认将 --registry
和 --disturl
都配置好了, 谁用谁知道
.
写到这里, 就更快疑惑那些不想安装 cnpm cli 又吐槽 npm 慢的同学是基于什么考虑不在本地安装一个 cnpm 呢?
github 好慢
好了, 看到这里大家应该对 node 和 npm 已经没有速度慢的问题了.
github 慢, 或者说是它的资源 host 被堵而已, 大家可以通过简单的 hosts 映射解决:
185.31.16.184 github.global.ssl.fastly.net
相关推荐
Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它让JavaScript开发者可以在服务器端执行代码,打破了传统的JavaScript只能在浏览器端运行的限制。这本《Node.js开发实战详解》电子书,显然是为了帮助那些...
要开始学习 Node.js,我们首先需要搭建 Node.js 开发环境。Node.js 可以在多种平台上运行,包括 Windows、Mac 和 Linux。 在 Windows 和 Mac 平台上,我们可以使用 Node.js 官方提供的安装程序来安装 Node.js。在 ...
总的来说,Node.js 14.17.3版本的Windows x64安装包为开发者提供了一个强大且便捷的JavaScript开发环境,集成了npm,方便管理项目依赖。无论你是初学者还是经验丰富的开发者,这个版本都能满足你的开发需求。
5. **npm(Node Package Manager)**:Node.js的包管理器npm是最大的开源软件库之一,拥有海量的第三方模块,可以极大地加速开发过程。 6. **实时应用**:Node.js特别适合构建实时应用,如聊天室、协作编辑工具等,...
npm则是Node.js的包管理工具,通过它,开发者可以轻松地下载、安装和管理第三方库,加速项目开发。 接下来,他会讲解Node.js中的基本数据类型、控制流、错误处理以及文件系统操作。例如,通过fs模块,你可以读写...
书中还将涵盖Express框架的使用,它是Node.js最流行的web应用框架,能够快速搭建高效的应用结构。同时,数据库操作也是重要一环,MongoDB作为NoSQL数据库的代表,将被介绍如何与Node.js结合使用。 除此之外,书中还...
Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用...总的来说,这个压缩包提供了在Windows系统上搭建Node.js开发环境所需的一切,无论是初学者还是经验丰富的开发者,都能从中受益。
Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者使用JavaScript进行服务器端编程,打破了JavaScript只能在浏览器中运行的传统。本“Node.js开发实战详解源代码”压缩包提供了丰富的学习材料,...
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它让开发者能够在服务器端使用 JavaScript 进行编程,极大地推动了前后端一体化的开发模式。Node.js 使用了一个事件驱动、非阻塞I/O模型,使其轻量又高效...
【Node.js开发Web后台服务1】是一篇关于使用Node.js构建Web服务的教程,主要涵盖了Node.js的基础知识、环境搭建、NPM管理、Express框架以及RESTful API等内容。以下是详细的知识点解析: 一、Node.js简介 Node.js是...
Node.js是一款基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript编写程序,从而打破了JavaScript只能在浏览器中运行的传统。Node.js通过事件驱动、非阻塞I/O模型,使其轻量且高效,非常...
Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者...总之,Node.js的开源应用展示了其强大的功能和灵活性,通过深入研究这些项目,开发者可以不断提升自己在服务器端JavaScript开发方面的专业水平。
Node.js是一种开源、跨平台的JavaScript运行环境,它允许开发者在服务器端运行JavaScript代码。这个“node.js安装包”是64位版本,版本号为6.10.2,特别适合用来搭建Vue.js项目的运行环境。Vue.js是一款轻量级的前端...
下面我们将深入探讨如何搭建Node.js环境以及它的基本使用方法。 ### 一、Node.js环境搭建 1. **下载安装**: 首先,你需要访问Node.js的官方网站(https://nodejs.org/)下载适合你操作系统的安装包。对于Windows...
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它让开发者能够使用 JavaScript 在服务器端编写可伸缩的网络应用。这个“Node.js-Node.js机器人平台”项目,显然旨在利用 Node.js 的特性来构建智能机器...
Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者使用JavaScript进行服务器端编程,打破了JavaScript只能在浏览器中运行的传统。这个资料包包含了五本关于Node.js的电子书籍,涵盖了从基础到进阶...
这个"node-v16.14.2-x64安装包"包含了所有必要的组件,使得用户可以在本地环境中快速搭建起 Node.js 开发和执行的平台。 Vue.js 是一个轻量级的前端JavaScript框架,用于构建用户界面。它以其易学易用、高效灵活的...