`
snow_14
  • 浏览: 36727 次
  • 来自: ...
社区版块
存档分类
最新评论

快速搭建 Node.js 开发环境以及加速

 
阅读更多

快速搭建 Node.js 开发环境以及加速 npm

在公交车上刷微博,还是有很多同学在咨询:

  • 如何快速搭建 node 开发环境
  • npm 超慢
  • github 无法打开的问题

于是我觉得应该写一篇文章解答所有这些起步问题,让新同学也能顺顺利利入门。

快速搭建 Node.js 开发环境

如果你想长期做 node 开发, 或者想快速更新 node 版本, 或者想快速切换 node 版本, 那么在非 Windows(如 osx, linux) 环境下, 请使用 nvm 来安装你的 node 开发环境, 保持系统的干净.

如果你使用 Windows 做开发, 那么你可以使用 nvmw 来替代 nvm

osx, linux 环境

如果你是 windows 环境开发, 请跳过这里, 直接查看下一章.

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

NodeVersionManagerUsage:
    nvm help                    Showthis message
    nvm --version               Printout the latest released version of nvm
    nvm install [-s]<version>Downloadand 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>Installglobal NPM packages contained in<version> to current version

Example:
    nvm install v0.10.24Install a specific version number
    nvm use0.10Use the latest available 0.10.x release
    nvm run 0.10.24 myApp.js    Run myApp.js using node v0.10.24
    nvm aliasdefault0.10.24Setdefault node version on a shell

Note:
    to remove,deleteor uninstall nvm - just remove ~/.nvm, ~/.npm and~/.bower folders

通过 nvm 安装任意版本的 node

nvm 默认是从 http://nodejs.org/dist/ 下载的, 国外服务器, 必然很慢, 好在 nvm 以及支持从镜像服务器下载包, 于是我们可以方便地从七牛的 node dist 镜像下载:

$ NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node nvm install 4

于是你就会看到一段非常快速进度条:

######################################################################## 100.0%Nowusing node v4.3.2

如果你不想每次都输入环境变量 NVM_NODEJS_ORG_MIRROR, 那么我建议你加入到 .bashrc 文件中:

# nvmexport NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node
source ~/git/nvm/nvm.sh

然后你可以继续非常方便地安装各个版本的 node 了, 你可以查看一下你当前已经安装的版本:

$ nvm ls
         nvm
     v0.8.26
    v0.10.26
    v0.11.11->  v4.3.2

windows 环境

git clone nvmw

直接从 github clone nvmw 到本地, 这里假设大家都使用 d:\git 目录存放 git 项目:

$ d:
$ cd git
$ git clone https://github.com/hakobera/nvmw.git

设置 d:\git\nvmw 目录到你的 PATH 环境变量中:

set"PATH=d:\git\nvmw;%PATH%"

重新打开你的终端, 输入 nvmw

$ nvmw

Usage:
  nvmw help                    Showthis message
  nvmw install [version]Downloadand install a [version]
  nvmw uninstall [version]Uninstall a [version]
  nvmw use[version]Modify PATH to use[version]
  nvmw ls                      List installed versions

Example:
  nvmw install v0.6.0Install a specific version number
  nvmw use v0.6.0Use the specific version

通过 nvmw 安装任意版本的 node

nvmw 默认是从 http://nodejs.org/dist/ 下载的, 国外服务器, 必然很慢, 好在 nvmw 以及支持从镜像服务器下载包, 于是我们可以方便地从七牛的 node dist 镜像下载:

$ set"NVMW_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node"
$ nvmw install 4.3.2

于是你就会看到一段非常快速进度条:

######################################################################## 100.0%Nowusing node v4.3.2

如果你不想每次都输入环境变量 NVMW_NODEJS_ORG_MIRROR, 那么我建议你在全局环境变量中增加它.

然后你可以继续非常方便地安装各个版本的 node 了, 你可以查看一下你当前已经安装的版本:

$ nvmw ls

v0.10.26
v0.11.12Current: v4.3.2

到此, 无论是 windows 环境, 还是 osx, linux 环境, 都能快速安装多个版本的 node 了.

使用 cnpm 加速 npm

同理 nvm , npm 默认是从国外的源获取和下载包信息, 不慢才奇怪. 可以通过简单的 ---registry 参数, 使用国内的镜像 https://registry.npm.taobao.org :

$ npm --registry=https://registry.npm.taobao.org install koa

于是屏幕又哗啦哗啦地一大片输出:

$ npm --registry=https://registry.npm.taobao.org install koa
npm http GET https://registry.npm.taobao.org/koa
npm http 200 https://registry.npm.taobao.org/koa...
npm http 200 https://registry.npm.taobao.org/negotiator
npm http 200 https://registry.npm.taobao.org/keygrip
koa[@0](/user/0).5.2 node_modules/koa
├── koa-compose[@2](/user/2).2.0├── statuses[@1](/user/1).0.2├── finished[@1](/user/1).1.1├── escape-html[@1](/user/1).0.1├── only[@0](/user/0).0.2├── debug[@0](/user/0).8.0├── fresh[@0](/user/0).2.2├── type-is[@1](/user/1).0.1├── delegates[@0](/user/0).0.3├── mime[@1](/user/1).2.11├── co[@3](/user/3).0.5├── accepts[@1](/user/1).0.1(negotiator[@0](/user/0).4.2)└── cookies[@0](/user/0).4.0(keygrip[@1](/user/1).0.0)

但是毕竟镜像跟官方的 npm 源还是会有一个同步时间差异, 目前 cnpm 的默认同步时间间隔是 15 分钟. 如果你是模块发布者, 或者你想马上同步一个模块, 那么推荐你安装 cnpm cli:

$ npm --registry=https://registry.npm.taobao.org install cnpm -g

通过 cnpm 命令行, 你可以快速同步任意模块:

$ cnpm sync koa connect mocha

呃, 我就是不想安装 cnpm cli 怎么办? 哈哈, 早就想到你会这么懒了, 于是我们还有一个 web 页面:

例如我想马上同步 koa, 直接打开浏览器: https://npm.taobao.org/sync/koa

或者你是命令行控, 通过 open 命令打开:

$ open https://npm.taobao.org/sync/koa

如果你安装的模块依赖了 C++ 模块, 需要编译, 肯定会通过 node-gyp 来编译, node-gyp 在第一次编译的时候, 需要依赖 node 源代码, 于是又会去 node dist 下载, 于是大家又会吐槽, 怎么 npm 安装这么慢…

好吧, 于是又要提到 --disturl 参数, 通过七牛的镜像来下载:

$ npm --registry=https://registry.npm.taobao.org --disturl=https://npm.taobao.org/mirrors/node install microtime

再次要提到 cnpm cli, 它已经默认将 --registry--disturl 都配置好了, 谁用谁知道 . 写到这里, 就更快疑惑那些不想安装 cnpm cli 又吐槽 npm 慢的同学是基于什么考虑不在本地安装一个 cnpm 呢?

分享到:
评论

相关推荐

    pdf版,Node.js开发实战详解

    Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它让JavaScript开发者可以在服务器端执行代码,打破了传统的JavaScript只能在浏览器端运行的限制。这本《Node.js开发实战详解》电子书,显然是为了帮助那些...

    Node.js入门教程.pdf

    要开始学习 Node.js,我们首先需要搭建 Node.js 开发环境。Node.js 可以在多种平台上运行,包括 Windows、Mac 和 Linux。 在 Windows 和 Mac 平台上,我们可以使用 Node.js 官方提供的安装程序来安装 Node.js。在 ...

    Node.js By Example

    Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它以其非阻塞I/O和事件驱动的模型,为构建高性能的网络应用提供了可能。 Node.js的核心特性包括单线程事件循环、异步编程、模块系统以及强大的文件系统操作等...

    新时期的node.js入门-李锴-书中示例代码

    Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它允许开发者使用JavaScript编写服务器端程序,打破了传统意义上JavaScript只能用于前端开发的局限。由于其非阻塞I/O模型和事件驱动特性,Node.js在处理高并发...

    Node.js开发实战详解.pdf

    书中还将涵盖Express框架的使用,它是Node.js最流行的web应用框架,能够快速搭建高效的应用结构。同时,数据库操作也是重要一环,MongoDB作为NoSQL数据库的代表,将被介绍如何与Node.js结合使用。 除此之外,书中还...

    Node.js开发实战详解源代码

    Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者使用JavaScript进行服务器端编程,打破了JavaScript只能在浏览器中运行的传统。本“Node.js开发实战详解源代码”压缩包提供了丰富的学习材料,...

    Node.js-Doodoo.js--中文最佳实践Node.jsWeb快速开发框架支持Koa.js中间件

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它允许开发者使用 JavaScript 语言在服务器端编写可扩展的网络应用。Node.js 利用了事件驱动、非阻塞I/O模型,使其在处理高并发请求时表现出极高的性能。...

    Node.js安装包和二进制文件

    Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用...总的来说,这个压缩包提供了在Windows系统上搭建Node.js开发环境所需的一切,无论是初学者还是经验丰富的开发者,都能从中受益。

    Node.js官方工具14.17.3版本windows系统x64安装包

    总的来说,Node.js 14.17.3版本的Windows x64安装包为开发者提供了一个强大且便捷的JavaScript开发环境,集成了npm,方便管理项目依赖。无论你是初学者还是经验丰富的开发者,这个版本都能满足你的开发需求。

    Node.js 6.x Blueprints(pdf+epub+mobi+code)

    2. **Web开发**:讲解如何使用Express.js,一个简洁灵活的Node.js Web应用框架,快速搭建Web服务器。还将探讨中间件的概念,以及路由和模板引擎的使用。 3. **数据库集成**:介绍MongoDB,一个NoSQL数据库,以及...

    node-v10.14.0-x64_Node.js_源码

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它让开发者能够在服务器端使用 JavaScript 进行编程,极大地推动了前后端一体化的开发模式。Node.js 使用了一个事件驱动、非阻塞I/O模型,使其轻量又高效...

    Node.js-利用Node.js开发的一些开源应用

    Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者...总之,Node.js的开源应用展示了其强大的功能和灵活性,通过深入研究这些项目,开发者可以不断提升自己在服务器端JavaScript开发方面的专业水平。

    node.js 环境搭建,简单使用

    下面我们将深入探讨如何搭建Node.js环境以及它的基本使用方法。 ### 一、Node.js环境搭建 1. **下载安装**: 首先,你需要访问Node.js的官方网站(https://nodejs.org/)下载适合你操作系统的安装包。对于Windows...

    Node.js-Node.js机器人平台

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它让开发者能够使用 JavaScript 在服务器端编写可伸缩的网络应用。这个“Node.js-Node.js机器人平台”项目,显然旨在利用 Node.js 的特性来构建智能机器...

    前端环境搭建+node.js+vue+vscode

    前端环境搭建+node.js+vue+vscode 在本资源中,我们将学习如何搭建一个完整的前端环境,包括安装 Node.js、cnpm、...通过按照本指南的步骤,我们可以快速搭建一个完整的前端环境,开始开发和测试我们的前端项目。

    redux+react+router+node.js

    在课程学习中,开发者需要具备一定的基础,包括React开发环境的搭建,如使用create-react-app创建项目,理解和使用ES6的新特性,如let和const声明变量,箭头函数,对象和数组的扩展等。此外,还要了解如何扩展...

    Node.js-node.jslayuibootstrap快速开发企业网站

    LayUI和Bootstrap则是前端开发中常用的两个框架,它们能帮助开发者快速搭建美观且响应式的界面。本教程将结合Node.js、layui和bootstrap,讲解如何利用这些工具快速开发企业网站。 1. **Node.js**:Node.js是一个...

Global site tag (gtag.js) - Google Analytics