NodeJs安装与概述

76 阅读2分钟

概述

  1. 是一个开源,跨平台的JavaScript运行时环境,可以看作是一个虚拟机
  2. 构建在V8引擎之上的,V8引擎是C/C++编写的,所以会将JS代码由C/C++转化后再执行
  3. 使用异步I/O和事件驱动的设计里面,高效处理大量并发请求
  4. 使用npm作为包管理工具,类似python的pip或者Android的gradle
  5. 适合做IO密集型,不适合做CPU密集型

安装

地址:http://www.nodejs.com.cn/
TSL: 长期支持版
Current:尝鲜版

推荐使用nvm进行node版本的管理
github.com/coreybutler…

npm

Node package Manager,是NodeJs的包管理工具,基于命令行,用于安装,移除和升级管理依赖项
www.npmjs.com/

类似python的包管理工具pip,安装和管理python的依赖项
Android的gradle,添加和管理Android需要依赖的jar

npm命令

npm init 初始化一个新的npm项目,创建package.json文件
npm install 安装package.json中dependencies和devDependencies的依赖包
npm install –production 只会下载dependencies中的包
npm install <package-name> 安装最新版本的包到node_modules中,并将包名添加到package.json的dependencies中
npm install <package-name>@xx.xx 安装指定版本的包 npm install <package-name> --save 安装指定的包到node_modules中,并将包名添加到package.json的dependencies中 npm install <package-name> --save-dev 安装指定的包到node_modules中,并将包名添加到package.json的devDependencies中
npm update <package-name> 更新指定的包
npm uninstall <pacgage-name> 卸载指定的包
npm info <package-name> 查看包的详细信息

npm install 安装模块的时候一般是扁平化安装的,但是有时候出现嵌套的情况是因为版本不同
A 依赖 C1.0,
B 依赖 C1.0,
D 依赖 C2.0,
此时C 1.0就会被放到A B的node_moduels,
C2.0 会被放入D模块下面的node_moduels

package.json

通过npm init命令初始化一个package.json

{
  "name": "testnode",  // 项目名称
  "version": "1.0.0", // 项目版本号
  "description": "node test project", // 项目描述
  "main": "index.js", // 主入口
  "scripts": { // 脚本命令,如启动项目
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [ // 项目关键字列表
    "node"
  ],
  "author": "tangyuan", // 项目作者
  "license": "MIT", // 项目许可证信息
  "homepage": "https://www.xxx.xxx", //项目首页
  "repository": { // 项目代码仓库
    "type": "git",
    "url": "https://github.cm/xxx"
  },
  "dependencies": { // 运行依赖包
    "md5": "^2.3.0"
  },
  "devDependencies": { // 开发依赖包, 如js的压缩包gulp-uglify
    "sass": "^1.69.7"
  }
}