Node.js基础入门


一、Node.js是什么

Node.js® is a JavaScript runtime built on Chrome’s V8 JavaScript engine.

特性

Node.js 可以解析JS代码(没有浏览器安全级别的限制)提供很多系统级别的API,如:
文件的读写 (File System)
进程的管理 (Process)
网络通信 (HTTP/HTTPS)

二、Node.js安装卸载包

NPM: Node Package Manager

Node.js的包管理工具

1.安装

1.1 全局安装

$ npm install forever --global (-g)

1.2 局部安装

将安装好的包信息配置到package.json中开发依赖(devDependencies)分组

//方式一
$ npm install forever --dev-save
//方式二
$ npm install forever --save-dev
//方式三
$ npm install forever -D

将安装好的包信息配置到package.json中生产环境依赖(dependencies)分组

//方式一
$ npm install forever --save
 
//方式二
$ npm install forever -S

不将安装好的包信息配置到package.json

$ npm install forever

1.3 安装指定版本的包

$ npm install forever @1.8.0

$ npm install forever @1.8.0 -S

1.4 开发依赖和生产环境依赖

若局部安装命令中有dev-D,则会在package.json多一个devDependencies分组,叫开发依赖,言简意赅,该分组下的包只会在开发时使用,项目上线和测试时不使用。若局部安装命令中没有dev-D,则安装的包信息会配置在dependencies分组中,这个分组叫生产环境依赖。

如果只想安装生产环境所依赖的包,需执行

$ npm i --production

1.5 更新本地安装的包

查看本地安装中过期的包(即不是最新的版本的包)

$ npm outdated //~2.0.0表示patch, ^2.0.0表示minor * 表示xx最新版本

执行这一命令时会根据package.json中该包的配置信息进行更新

锁定主版本号

在这里插入图片描述
可见jquery的版本信息有^,该符号的意思是只锁定主版本号,所以执行npm update更新后jquery会更新到jquery2.x.x的最新版本。

锁定次版本号

在这里插入图片描述
可见jquery的版本信息有~,该符号的意思是锁定次版本号,所以执行npm update更新后jquery会更新到jquery2.0.x的最新版本。

全部锁定

在这里插入图片描述
若版本号前边什么符号都没有,所以执行npm update后package.json中版本号是多少就会安装该版本的包。

安装当前最新版本的包

在这里插入图片描述
若版本号是*则执行npm update后会自动安装当前最新版本的包

注意:jquery并没有2.0.0版本,以上只为说明各符号作用。

更新包

$ npm update

2、卸载

2.1 全局卸载

$ npm uninstall forever --global

2.2局部卸载

//方式一
$ npm uninstall forever --save
//方式二
$ npm uninstall forever 

3、初始化包描述文件package.json

$ npm init -y

4、清除NPM缓存

若下载包的过程中意外中断,导致后续无法下载安装这个包,则可清理缓存后,再继续下载。

$ npm cache clean --force

三、NPM 脚本

Node 开发离不开 npm,而脚本功能是 npm 最强大、最常用的功能之一。

3.1 什么是 npm 脚本?

npm 允许在 package.json 文件里面,使用 scripts 字段定义脚本命令。

{
  // ...
  "scripts": {
    "build": "node build.js",
    "dev": "gulp -v"
  }
}

3.2 执行顺序

如果 npm 脚本里面需要执行多个任务,那么需要明确它们的执行顺序。

script1.js

var x = 0
console.log(x)
script2.js

var y = 0
console.log(y)
"scripts": {
  "script1": "node script1.js",
  "script2": "node script2.js"
}

如果是并行执行(即同时的平行执行),可以使用 & 符号。

$ npm run script1 & npm run script2

如果是继发执行(即只有前一个任务成功,才执行下一个任务),可以使用 && 符号。

$ npm run script1 && npm run script2

3.3 简写形式

常用的 npm 脚本简写形式。

npm start 是 npm run start

3.4 变量

npm 脚本有一个非常强大的功能,就是可以使用 npm 的内部变量。

首先,通过 npm_package_ 前缀,npm 脚本可以拿到 package.json 里面的字段。比如,下面是一个 package.json。

注意:一定要在 npm 脚本中运行(如:npm run view)才可以,直接在命令行中运行JS(如:node view.js)是拿不到值的

{
  "name": "foo", 
  "version": "1.2.5",
  "scripts": {
    "view": "node view.js"
  }
}

那么,变量 npm_package_name 返回 foo,变量 npm_package_version 返回 1.2.5。

// view.js
console.log(process.env.npm_package_name); // foo
console.log(process.env.npm_package_version); // 1.2.5

上面代码中,我们通过环境变量 process.env 对象,拿到 package.json 的字段值。如果是 Bash 脚本,可以用$npm_package_name 和 $npm_package_version 取到这两个值。

npmpackage前缀也支持嵌套的package.json字段。

"repository": {
  "type": "git",
  "url": "xxx"
},
scripts: {
  "view": "echo $npm_package_repository_type"
}

上面代码中,repository 字段的 type 属性,可以通过 npm_package_repository_type 取到。

下面是另外一个例子。

"scripts": {
  "install": "foo.js"
}

上面代码中,npm_package_scripts_install 变量的值等于 foo.js。

然后,npm 脚本还可以通过 npmconfig 前缀,拿到 npm 的配置变量,即 npm config get xxx 命令返回的值。比如,当前模块的发行标签,可以通过 npm_config_tag 取到。

"view": "echo $npm_config_tag",

注意,package.json 里面的 config 对象,可以被环境变量覆盖。

{ 
  "name" : "foo",
  "config" : { "port" : "8080" },
  "scripts" : { "start" : "node server.js" }
}

上面代码中,npm_package_config_port 变量返回的是 8080。这个值可以用下面的方法覆盖。

$ npm config set foo:port 端口号

最后,env命令可以列出所有环境变量。

"env": "env"

四、NRM: npm registry manager

NRM (npm registry manager)是npm的镜像源管理工具,有时候国外资源太慢,就可以使用nrm就可以快速地在 npm 源间切换。

4.1 手工切换源

4.1.1 查看当前源

$ npm config get registry

4.1.2 切换淘宝源

$ npm config set registry https://registry.npm.taobao.org

4.2 nrm使用步骤

  1. 在命令行执行命令npm install -g nrm,全局安装nrm。
  2. 执行命令 nrm ls 查看可选的源。
  3. 切换源, nrm 如果要切换到taobao源,执行命令 nrm use taobao
  4. 测试速度 你还可以通过以下命令测试相应源的响应时间。 nrm test

五、NPX: npm package extention

npm 从5.2版开始,增加了 npx 命令。Node 自带 npm 模块,所以可以直接使用 npx 命令。如果不能用,就要手动安装一下。

$ npm install -g npx

注意,只要 npx 后面的模块无法在本地发现,就会下载同名模块到一个临时目录,使用以后再删除。所以,以后再次执行下面的命令,会重新下载 http-server,在当前目录启动一个 Web 服务。

$ npx http-server

Tip

加油!!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值