Node.js学习-part1

初学node第一部分总结

Posted by AzirKxs on 2021-09-13
Estimated Reading Time 7 Minutes
Words 1.8k In Total
Viewed Times

概述

百度百科:

Node.js发布于2009年5月,由Ryan Dahl开发,是一个基于Chrome V8引擎的JavaScript运行环境,使用了一个事件驱动、非阻塞式I/O模型, [1] 让JavaScript 运行在服务端的开发平台,它让JavaScript成为与PHPPythonPerlRuby等服务端语言平起平坐的脚本语言。 [2]

Node.js对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好,V8引擎执行Javascript的速度非常快,性能非常好,基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。 [3]

node.js的特点:

  • 事件驱动
  • 非阻塞型IO模型
  • 轻量和高效

node.js的特性:

  • 1.可以在没有浏览器安全级别限制下运行
  • 2.进行文件管理
  • 3.进行进程管理
  • 4.进行网络通信

node.js的应用领域:

  • web开发
  • 微服务
  • 前端构建

npm基础

npm是node.js中的包管理工具,是世界上最大的开源包管理工具!

①使用npm命令安装包

在全局环境下安装最新版本的jquery

1
npm install jquery --global(-g)

全局安装包的目录

Mac

1
/Users/felix/.nvm/versions/node/nvm各个版本/bin/

Windows

1
C:\Users\你的用户名\AppData\Roaming\npm\node_modules

在当前目录下安装最新版本的jquery(本地安装)

1
npm install jquery

展示你本地安装过的包及其依赖关系

1
npm list

本地安装的包将存放在该目录下的node_modules文件夹下

②package.json

package.json的作用:记录当前的项目信息(项目描述,安装的包等信息)

拷贝项目时不需要拷贝node_modules文件夹下大量的文件,执行npm install命令会更具package.json中的信息自动下载相应版本的依赖。

生成package.json文件

1
npm init -y

项目依赖

  • 项目依赖:在项目的开发阶段和线上运营阶段,都需要依赖的第三方包
  • 使用npm install 包名 (或者npm install 包名 --save)将包添加到package.json文件的dependencies字段中
  • 重新安装时使用npm install --production 只安装项目依赖

开发依赖

  • 开发依赖:在项目的开发阶段需要依赖,线上运营阶段不需要的第三方包

  • 使用npm install 包名 --save-dev命令将包添加到package.json文件的devDependencies字段中

    示例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    {
    "name": "包名",
    "version": "1.0.0",
    "description": "",
    "main": "index.js",
    "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
    },
    "author": "",
    "license": "ISC",
    "dependencies": {
    "jquery": "^3.6.0",
    "underscore": "^1.13.1"
    }
    }

③package-lock.json

从 npm 5 版本之后只要使用 npm install 命令下载,就会自动生成 package-lock.json 文件。

  • 记录模块的版本以及模块与模块之间的依赖关系
  • 锁定包的版本
  • 记录项目所依赖第三方包的树状结构和包的下载地址,加快重新安装的下载速度

④版本说明

a.b.c

a代表主版本号

b代表次版本号

c代表修正号,偶数代表正式版,奇数代表开发版本

package.json下的版本说明:

^x.x.x:锁定主版本号

~x.x.x:锁定次版本号

* :表示最新版本

⑤上传包

1.编写模块

2.完善package.json的信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{ 
"name": "gp19-npm",
"version": "1.0.1",
"description": "gp19 self module",
"main": "index.js",
"scripts": {
"test": "make test"
},
"repository": {
"type": "Git",
"url": "git+https://github.com/lurongtao/gp19-npm.git"
},
"keywords": [
"demo"
],
"author": "Felixlu",
"license": "ISC",
"bugs": {
"url": "https://github.com/lurongtao/gp19-npm/issues"
},
"homepage": "https://github.com/lurongtao/gp19-npm#readme",
}

3.注册npm账号

4.添加用户

5.换源上传包

⑥相关命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
npm install 包名 --global(-g) #全局安装
npm install 包名 #本地安装(项目依赖)
npm install 包名 --save #本地安装(项目依赖)
npm install 包名 --save-dev #本地安装(开发依赖)
npm init -y #生成package.json文件
npm list #展示你本地安装过的包及其依赖关系
npm info 包名 #展示该包的信息
npm view 包名 #versions 查看该包所有的版本
npm outdated #查看该包的更新信息
npm update #更新包
npm cache clean --force #清除缓存
npm uninstall 包名 #卸载包
npm uninstall --save
npm uninstall --save-dev
npm uninstall -g 包名 #卸载全局安装的包
npm config get registry #查看npm源
npm config set registry http://registry.npmjs.org #切换源到npmjs
npm ls #查看该项目目前使用了哪些包
#================分割线===============
#没测试过,可能有不准确的地方
npm adduser #第一次登录创建用户(需要npmjs注册)
npm login #非第一次登录
npm publish #上传包
npm unpublish 包名 --force #强制撤销发布的包,只有在发包的24小时内才允许撤销发布的包
npm install git+git链接 #安装git上的包 例如npm install git+https://git@github.com:lurongtao/gp-project.git

npm脚本

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

1
2
3
"scripts": {
"名称":"指令"
}

添加和执行

添加脚本

1
2
3
4
5
"scripts": {
"hello":"echo hello world" ,//输出hello world
"load1":"node index1.js" ,//执行index1.js
"load2":"node index2.js" //执行index2.js
}

执行脚本

1
2
3
4
npm run hello #执行hello
npm run load1 #执行index1.js
npm run load1 & npm run load2 #并行执行
npm run load1 && npm run load2 #index1.js 执行完才会执行index2.js

变量

通过 npm_package_ 前缀,npm 脚本可以拿到 package.json 里面的字段

添加test.js

1
console.log(process.env.npm_package_scripts_hello)

添加脚本

1
2
3
4
"scripts": {
"hello":"echo hello world",
"runCode":"node test.js"
}

执行脚本

1
2
3
npm run runCode
#注意:必须使用执行脚本的方式运行test.js,直接在控制台输入node test.js是不行的,输出结果为undefined
#结果:echo hello world

在控制台输出package.json中hello字段的值

1
2
3
4
5
"scripts": {
"hello":"echo hello world",
"runCode":"node test.js",
"print":"echo %npm_package_scripts_hello%" //mac用户为"echo $npm_package_scripts_hello
}
1
2
npm run print
#结果:echo hello world

NRM

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

安装

1
npm install -g nrm

相关命令

1
2
3
nrm ls #查看可切换的源
nrm test #测试各个源的速度
nrm use 源的名称 #切换源

NPX

在一些情况下使用npx命令

1.直接调用安装的模块(不需要输入node_modules/.bin)

2.避免全局安装(会自动下载下来执行命令然后自动删除)

3.–no-install 参数和–ignore-existing 参数(不自动安装,忽略已经安装的)


如果这篇文章对你有帮助,可以bilibili关注一波 ~ !此外,如果你觉得本人的文章侵犯了你的著作权,请联系我删除~谢谢!