Node.Js 学习笔记
安装 :
nodejs.org/zh-cn/ 查看安装成功:node -v
运行 :
- vscode : 点击左侧调试图标,选择运行平台 node
- vscode :安装插件 run coder, 运行某 JS 文件右键 Run Code
Node 相关工具
1: NVM(Node Version Manager)
- Mac安装:安装地址
( 使用 Git 安装:)
`cd ~/` 从那时的任何地方 `git clone https://github.com/nvm-sh/nvm.git .nvm`
`cd ~/.nvm` 并查看最新版本 `git checkout v0.38.0`
通过从外壳中获取 nvm 来激活它:`. ./nvm.sh`
现在将这些行添加到您的~/.bashrc、~/.profile 或~/.zshrc 文件中,以便在登录时自动获取:(您可能需要添加到上述多个文件中)
`cd ~/`从这个地方,查看文件`ls`,查看隐藏文件`ls -a`
`export NVM_DIR="$HOME/.nvm"[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "\$NVM_DIR/bash_completion" # This loads nvm bash_completion`
验证安装成功:`command -v nvm`:输出:nvm
- Windows安装:
nvm-windows
nodist
2: NPM( Node Package Manager)
- 全局安装 package命令:
`npm install forever --global (-g)`
`forever`
`npm uninstall forever --global`
`forever`
- 全局安装的目录 Mac: /Users/felix/.nvm/versions/node/nvm各个版本/bin。
Windows: c:\users\用户\appData\Roaming\npm\node_modules
简单教程:
1. 热身知识
(1) 请求数据
ajax示例:
const xhr = new XMLHttpRequest();
xhr.open('get',
'https://aldh5.tmall.com/recommend2.htm?&appId=201602265,201602267,07055,201602266,2016030118,09044,201605170,201612221,201606279,2016062710&callback=jsonp_31960259'
);
xhr.send()
<!--运行:终端: npx http-server -->
server.js示例:
const http = require('https')
http.get('https://aldh5.tmall.com/recommend2.htm?&appId=201602265,201602267,07055,201602266,2016030118,09044,201605170,201612221,201606279,2016062710&callback=jsonp_31960259', (res) => {
let str = ''
res.on('data', (thunk) => { //收集流
str += thunk
})
res.on('end', () => { //结束
console.log(str)
})
})
//运行 :右键 Run Code
(2) 文件读写(file system)
const fs = require('fs');
//写文件 :(地址,内容,回调)
fs.writeFile('./log.txt', "hello", (err, data) => {
if (err) {
} else {
}
})
//运行 :右键 Run Code
(3) 进程的管理(process)
console.log(process.argv.slice(2))
// 运行:在上一层文件进入终端: node index.js argv1 argv2
(4) 网络通信(http/https)
const http = require('http')
const server = http.createServer((request, response) => { //非结构,顺序不能颠倒
let url = request.url;
response.write(url)
response.end()
})
server.listen(8090, 'localhost', () => {
console.log('localhost:8090')
})
//运行 :右键 Run Code
2. npm初始化、安装、查看依赖
(1) 初始化以及安装查看依赖
| 命令 | 作用 |
| --- | --- |
|npm init -y|初始化|
| npm list | 展示依赖的结构 |
| npm list | grep XX| 查看XX分支依赖的结构|
| npm i XX -S |生产环境安装XX依赖|
| npm i XX -D |开发环境安装XX依赖|
| npm uninstall XX |卸载XX依赖|
| npm i --production| 测试者只需安装生产环境下的包|
| npm view XX version |查看XX依赖版本|
| npm i XX@版本号 -S| 生产环境安装某版本的XX依赖,不写版本号是安装最新|
|npm cache clean --force |清除缓存|
|npm outdated|检查过时的软件包,没有就没有输出|
(2) npm版本号前的符号:符号+主版本号(major)+次版本号(minor)+ patch ,列:^13.0.6
| 符号 | 作用 |
| --- | --- |
| |锁定patch |
| ^ |锁定major |
| ~ |锁定minor |
| * |最新版本 |
3. 自己开发一个最简单的包
-
新建文件夹01-buildings,01-buildings下新建app.js,其代码:
//const path = require('path') //console.log(path.resolve(__dirname,'../')) //__dirname当前文件所在的物理路径 const _=require('lodash') function mychunk(arr){ let arr2=_.chunk(arr,2) return arr2 } module.exports=mychunk,index-text.js,其代码:
const mychunk =require('./app.js') console.log(mychunk([2,3,4,5])) //终端运行查看效果:node index-test.js,01-buildings下终端命令:
npm init -y ; npm install lodash; -
发布 先去npm官网创建npm用户,然后01-buildings下运行终端命令:
npm adduser 关联用户 npm publish 发布graph TD 创建npm用户 --> 终端关联用户 --> 终端发布
4. 源
4.1 手工切换
查看当前源:npm config get registry
切换淘宝源:npm config set registry https://registry.npm.taobao.org
4.2 NRM 管理源
NRM(npm registry manager) 是npm的镜像源管理工具,有时候国外资源太慢,使用这个就可以快速的在npm源间切换。
4.2.1 安装 NRM
命令行执行:npm install -g nrm,全局安装NRM
4.2.2 使用 NRM
执行命令nrm is 查看当前可选的源,其中,带*的是当前使用的源,上面的输出表明当前源是官方源
4.2.3 切换NRM
切换到taobao源,执行命令nrm use taobao
5 .npm脚本
5.1 配置命名:
(1)自定义命名,示例XX --> 运行时,npm run XX
(2)规定命名:start、test、dev、eject、build --> 运行时可省略run
5.2 脚本运行
5.2.1 最简单的脚本示例
在package.json下scripts中,配置, "XX":"echo hello",运行npm run XX 即运行XX配置,此处从02-npm文件下运行终端,调用greeting配置打印hello
5.2.2 升级脚本
- 基础:XX.js文件下终端命令执行:
node XX.js即运行XX.js文件
- 升级:在package.json下scripts中,配置,
"XX":"node js1路径 & node js2路径 等"(串行运行,顺序随机),终端运行:npm run XX,即运行js1文件,js2文件..
5.3 变量
npm脚本有一个非常强大的功能,就是可以使用npm的内部变量。
首先,通过npm_package_前缀,npm脚本可以拿到package.json里面的字段。比如,下面是一个package.json.
!注意一定要在npm脚本中运行(如:npm run view)才可以,直接在命令行中运行js(如 node view.js)是拿不到值的
错误示例:(通过 XX.js)
正确示例1:(通过 XX.js)
正确示例2:(通过 配置),补:“env”:"env" ,运行列出所有环境变量
5.4 npm安装git上的包
- 适合安装公司内部的git服务器上的项目
npm install git+https://git@github.com:xyy-github/react_note.git - 或者以ssh的方式
npm install git+ssh://git@github.com:xyy-github/react_note.git
5.5 cross-env使用
5.5.1 cross-env是什么?
运行跨平台设置喝使用环境变量的脚本
5.5.2 出现原因
当您使用 NODE ENV = production ,来设置环境变量时,大多数 Windows 命令提示将会阻塞报错)。(异常是 Windows 上的 Bash ,它使用本机 Bash 。换言之, Windows 不支持 NoDE ENV - production 的设置方式
5.5.3 解决
cross - env 使得您可以使用单个命令,而不必担心为平台正确设置或使用环境变量。这个迷你的包( cross - env )能够提供一个设置环境变量的 scripts ,让你能够以 Unix 方式设置环境变量,然后在 Windows 上也能兼容运行。
5.5.4 安装
npm install --save-dev cross-env