Windows Nodejs 安装教程
1: 访问官方地址 https://nodejs.org/en/download/
2: 解压压缩包文件到指定目录
我直接把压缩包解压到C盘根目录下,并将文件夹重命名为nodejs
3: 设置系统的环境变量
NODEJS_HOME = C:\nodejs
PATH 中追加 %NODEJS_HOME%
NODE_EXE = %NODEJS_HOME%\node.exe
NPM_CLI_JS = %NODEJS_HOME%\node_modules\npm\bin\npm-cli.js
在nodejs的主目录下,创建 node_global 和 node_cache 两个文件夹。
创建完两个空文件夹之后,并设置环境变量。
NODE_GLOBAL = %NODEJS_HOME%\node_global
NODE_CACHE = %NODEJS_HOME%\node_cache
NODE_PATH = %NODE_GLOBAL%\node_modules
PATH 中追加 %NODE_GLOBAL%
打开cmd命令窗口,输入
npm config set prefix C:\nodejs\node_global
npm config set cache C:\nodejs\node_cache
调整其他环境变量设置
GIT_FOR_WIN_HOME = C:\PortableGit
PATH 中追加 %GIT_FOR_WIN_HOME%;%GIT_FOR_WIN_HOME%\bin
4: 测试安装npm扩展
npm install express -g
5: 前往淘宝镜像官网 http://npm.taobao.org/,可查看安装cnpm包的命令
在命令行输入:
npm install -g cnpm --registry=https://registry.npm.taobao.org
Typings实现智能
在Visual Studio Code中通过Typings实现智能提示功能
我们知道在IDE中代码的智能提示几乎都是标配,虽然一些文本编辑器也有一些简单的提示,但这是通过代码片段提供的。功能上远不能和IDE相比。不过最近兴起的文本编辑器的新锐 Visual Studio Code 可以通过 Typings
来对 JavaScript
实现智能提示功能,对于一个文本编辑器来说,这点很难得。所以Visual Studio Code 特别适合用来编写 JavaScript
(Node.js
)程序; 同时,如果我们需要编写一些尝试性的小代码片段,例如:Lodash.js
某个函数的小Demo,因为我们不想研究一个函数的使用方式而去使用IDE新建一个项目,这时候Visual Studio Code 就是一个非常好的选择,而且它同样可以运行和调试 JavaScript
代码(依赖于 Node.js
),并且还包含非常方便的代码提示功能。
从这点来说,我觉得Visual Studio Code 已经算得上是一个精悍的小型IDE了。
通过NPM安装Typings
通过 NPM
我们可以很容易的安装 Typings
,在命令行中输入:
npm install -g typings
安装完成后,在命令行中输入:
typings --version
看到版本信息就表示 typings
工具安装完成了:
NPM
是和Node.js
一起安装的,如果你想使用NPM
的话,那么你应该先安装Node.js
。
安装相关提示信息文件
安装完成后,我们需要安装相应的需要提示功能库或者框架的类型信息文件,在这里我们新建一个文件夹 NodeSnippet
,使用命令行进入到该目录中,分别输入下面两个命令来安装Node
和Lodash
的类型接口信息文件:
typings install node --ambient --save
typings install lodash --save
什么时候需要使用 --ambient
参数:
- 如果安装的包使用
script
标记来引用(如jQuery)(也就是在浏览器中使用)- 这个包是属于环境的一部分(如
node
)时- 该包没有使用
--ambient
安装失败时
使用typings拓展自动补全功能
The answer is here: https://github.com/typings/typings/releases/tag/v1.0.0
TLDR: --ambient
has changed to --global
UPDATE From comment below
You need to specify the repository too e.g.:
typings install dt~moment-timezone --global
typings install dt~node --global
typings install dt~express --global
typings install dt~lodash --global
typings install dt~express dt~serve-static dt~express-serve-static-core --global
关于typings的其他相关.
基本用法
语法复制自typings的Quick Start,个人对注释本地化了一下。
# 安装Typings的命令行代码.
npm install typings --global
# 搜索对应模块的typings定义.
typings search tape
# 根据名称寻找一个可获得的typings定义.
typings search --name react
# 如果你用一个独立包的模块:
# 或者并不是安装全局模块 # 比如并不是在命令行通过输入npm install -g typings这种方式安装的. typings install debug --save # 如果是通过script标记 # 或者是子环境的一部分 # 或者全局typings命令不可用的时候: typings install dt~mocha --global --save # 从其他版本处安装typings定义(比如env或者npm). typings install env~atom --global --save typings install npm~bluebird --save # 使用该文件`typings/index.d.ts` (在`tsconfig.json`文件使用或者用 `///` 定义). cat typings/index.d.ts
这时候我们可以看到我们的 NodeSnippet
目录中多了一些文件:
这些文件就是为我们提供提示信息的类型类型文件(使用TypeScript
定义)。查看Typings
是否支持某个库或框架的智能提示,我们可以使用下面的命令:
typings search exampleName
启用智能提示功能
通过两种方式来启动提示功能:
- 第一种是在需要进行智能提示的文件最上行增加提示信息文件所在目录,格式如下:
/// <reference path="./typings/main.d.ts" />
-
第二种是在项目所在目录(在这里是
NodeSnippet
文件夹中)增加一个名为jsconfig.json
的空文件。更多
jsconfig.json
文件的内容可以参考:https://code.visualstudio.com/docs/languages/javascript
启用提示功能后我们就可以非常愉快的使用Visual Studio Code 为我们提供的智能提示功能了。如下所示:
注意事项
Typings VS TSD
Typings
是作为TSD
的替代者而出现的,如果你已经安装了TSD
,那么需要知道现在TSD
已经不推荐使用了。如果已经安装TSD请执行下面的命令来移除它:
npm rm -g tsd
使用 CNPM
在国内由于墙
的原因,有时候使用NPM
安装模块的速度上会很慢,这时候我们其实可以选择国内淘宝的NPM
镜像,使用下面的命令来进行安装:
npm install -g cnpm --registry=https://registry.npm.taobao.org
安装完成后使用cnpm
来代替npm
命令即可,例如下面安装一个lodash
模块的示例:
cnpm install lodash
可以看到除了cnpm
替代了npm
其他的并没有任何区别。
参考&进一步阅读
https://github.com/typings/typings
https://code.visualstudio.com/docs/languages/javascript
https://npm.taobao.org/
npm install 本地安装与全局安装的区别
npm的包安装分为本地安装(local)、全局安装(global)两种,从敲的命令行来看,差别只是有没有-g而已,比如
npm install grunt # 本地安装 npm install -g grunt-cli # 全局安装
这两种安装方式有什么区别呢?从npm官方文档的说明来看,主要区别在于(后面通过具体的例子来说明):
本地安装
1. 将安装包放在 ./node_modules 下(运行npm时所在的目录)
2. 可以通过 require() 来引入本地安装的包
全局安装
1. 将安装包放在 /usr/local 下
2. 可以直接在命令行里使用
本地安装
1、将安装包放在 ./node_modules 下(运行npm时所在的目录)
比如运行下面命令
npm install grunt --save-dev
那么,就会在当前目录下发现一个node_modules目录,进去后能够看到grunt这个包
casperchenMacBookPro:testUsemin casperchen$ ll total 200 drwxr-xr-x 16 casperchen staff 544B 12 14 23:17 node_modules
进入node_modules
casperchenMacBookPro:node_modules casperchen$ ll total 0 drwxr-xr-x 16 casperchen staff 544B 12 5 00:49 grunt
2、可以通过 require() 来引入本地安装的包
直接来个例子,我们在项目根目录下创建test.js,里面的内容很简单
var grunt = require('grunt');grunt.log.writeln('hello grunt');
然后在控制台运行test.js
node test.js
然后就会看到如下输出
casperchenMacBookPro:testUsemin casperchen$ node test.js hello grunt
全局安装
1、将安装包放在 /usr/local 下
运行如下命令
npm install -g grunt-cli
然后进入/usr/local/bin目录,就会发现grunt-cli已经被放置在下面了
casperchenMacBookPro:bin casperchen$ pwd /usr/local/bin casperchenMacBookPro:bin casperchen$ ll grunt lrwxr-xr-x 1 root admin 39B 8 18 21:43 grunt -> ../lib/node_modules/grunt-cli/bin/grunt
可见,全局模块的真实安装路径在/usr/local/lib/node_modules/下,/usr/local/bin下的可执行文件只是软链接而已
2、可以直接在命令行里使用
实现细节在上面其实就讲到了,通过在`/usr/local/bin下创建软链接的方式实现。这里不赘述
更直观的例子
下面就直接看下,当我们在项目目录下运行grunt task(task为具体的grunt任务名,自行替换)时,发生了什么事情。这里要借助node-inspector。
首先,没接触过node-inspector的童鞋可以参考之前的文章了解下
运行如下命令开启调试
node-inspector &
见到如下输出
casperchenMacBookPro:tmp casperchen$ node-inspector & [1] 14390 casperchenMacBookPro:tmp casperchen$ Node Inspector v0.6.1 info - socket.io started Visit http://127.0.0.1:8080/debug?port=5858 to start debugging.
接着,在当前任务下运行grunt任务
^CcasperchenMacBookPro:testUsemin casperchen$ node --debug-brk $(which grunt) dev debugger listening on port 5858
接着,打开chrome浏览器,输入网址http://127.0.0.1:8080/debug?port=5858,就会自动进入断点调试状态。从一旁显示的tiPS可以看到,全局命令grunt其实就是/usr/local/lib/node_modules/grunt-cli/bin/grunt
按下F8接着往下跑,就会进如Gruntfile.js,此时的grunt,是本地安装的一个node包。全局命令跟本地的包名字一样,挺有迷惑性的。
淘宝 NPM 镜像 http://npm.taobao.org/
这是一个完整 npmjs.org
镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。
- 当前 registry.npm.taobao.org 是从 r.cnpmjs.org 进行全量同步的.
- 当前 npm.taobao.org 运行版本是: cnpmjs.org@3.0.0-alpha.15
- 本系统运行在 Node.js@v6.11.2 上.
- 开源镜像: http://npm.taobao.org/mirrors
- Node.js 镜像: http://npm.taobao.org/mirrors/node
- alinode 镜像: http://npm.taobao.org/mirrors/alinode
- phantomjs 镜像: http://npm.taobao.org/mirrors/phantomjs
- ChromeDriver 镜像: http://npm.taobao.org/mirrors/chromedriver
- OperaDriver 镜像: http://npm.taobao.org/mirrors/operadriver
- Selenium 镜像: http://npm.taobao.org/mirrors/selenium
- Node.js 文档镜像: http://npm.taobao.org/mirrors/node/latest/docs/api/index.html
- NPM 镜像: https://npm.taobao.org/mirrors/npm/
- electron 镜像: https://npm.taobao.org/mirrors/electron/
- node-inspector 镜像: https://npm.taobao.org/mirrors/node-inspector/
575,943 | 个模块 | 4,104,362 | 个模块版本 | 11 | 次删除 |
1,863,585 | 次本日下载 | 1,863,585 | 次本周下载 | 95,738,460 | 次本月下载 |
3,038,509 | 次昨日下载 | 24,241,361 | 次上周下载 | 118,008,975 | 次上月下载 |
同步状态
This registry will sync all packages from official registry.
上次同步完成时间: Mon Oct 30 2017 14:24:51 GMT+0800 (中国标准时间)
共 47 个模块需要同步 | 剩余 4 个模块待同步 | 已完成 91% |
已同步完成了 43 个模块 | 其中 0 个模块同步失败 | 最近同步成功的模块是: unlace |
Version Badge
Default style is flat-square
.
Badge URL: https://npm.taobao.org/badge/v/cnpmjs.org.svg
<0.1.0 & >=0.0.0
:<1.0.0 & >=0.1.0
:>=1.0.0
:
使用说明
你可以使用我们定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm
:
$ npm install -g cnpm --registry=https://registry.npm.taobao.org
或者你直接通过添加 npm
参数 alias
一个新命令:
alias cnpm="npm --registry=https://registry.npm.taobao.org \
--cache=$HOME/.npm/.cache/cnpm \
--disturl=https://npm.taobao.org/dist \
--userconfig=$HOME/.cnpmrc"
# Or alias it in .bashrc or .zshrc $ echo '\n#alias for cnpm\nalias cnpm="npm --registry=https://registry.npm.taobao.org \ --cache=$HOME/.npm/.cache/cnpm \ --disturl=https://npm.taobao.org/dist \ --userconfig=$HOME/.cnpmrc"' >> ~/.zshrc && source ~/.zshrc
安装模块
从 registry.npm.taobao.org 安装所有模块. 当安装的时候发现安装的模块还没有同步过来, 淘宝 NPM 会自动在后台进行同步, 并且会让你从官方 NPM registry.npmjs.org 进行安装. 下次你再安装这个模块的时候, 就会直接从 淘宝 NPM 安装了.
$ cnpm install [name]
同步模块
直接通过 sync
命令马上同步一个模块, 只有 cnpm
命令行才有此功能:
$ cnpm sync connect
当然, 你可以直接通过 web 方式来同步: /sync/connect
$ open https://npm.taobao.org/sync/connect
其它命令
支持 npm
除了 publish
之外的所有命令, 如:
$ cnpm info connect