nrm管理npm源
npm install nrm -g
nrm ls
查看所有的源
npm install nrm -g
nrm ls
查看所有的源
NodeMon
– npm install nodemon -d
– 修改package.json中的启动命令
“start”: “nodemon src/app.js”
控制台重启rs
– 配制
nodemon.json
{
“wathch”: [“./src/**/.“]
}
安装见github
nstall & Update Script
To install or update nvm, you should run the install script. To do that, you may either download and run the script manually, or use the following cURL or Wget command:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
Running either of the above commands downloads a script and runs it. The script clones the nvm repository to ~/.nvm, and attempts to add the source lines from the snippet below to the correct profile file (~/.bash_profile, ~/.zshrc, ~/.profile, or ~/.bashrc).
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
模板引擎:
– Jade:面向后端
使用#{}传递变量以及js表达式
属性传递变量直接等于变量即可,不能写成#{}形式,会报错。
‘-‘ 执行符
= 执行符
for循环
使用 ! 渲染dom节点
if判断渲染不同dom节点
jade中switch条件语句和js的语法有点不同,其用case…when…
class属性比较特殊,可以写多个class,jade会自动合并,其他属性不能重复
– Ejs:最常用,最广泛,前后端分离
特点:ejs是非破坏式(非侵入式)引擎,它不改变html的任何语法,可以让我们直接在标签内书写简单、直白的 JavaScript 代码。
<%=变量或表达式%>
ejs中输出data是在回调函数中,不像jade是定义一个变量来接收的
ejs中使用<%=变量名%> 输出数据到模板,如果输出如果含有html标签,<>会被编码(转义)
<%js代码%>
s中使用<%js代码%> 执行js代码, 不会输出,被称作无缓冲的代码。
由于不输出代码,会出现两行空行,可以换成<%_js代码_%>,会自动删除不输出产生的空行
<%-变量或表达式%>
默认使用<%%> 会将<>转义输出,可以使用<%-%>声明不转义输出
include
– handlerbars
模板引擎 Mustache 的扩展
– art-template
介绍 https://aui.github.io/art-template/zh-cn/docs/
apt install node-express-generator
npm install -g express-generator
npm -g install express
express -V
错误:在项目目录执行 npm install express 或 npm link express
npm -g install serve-index
npm -g install socket.io
npm install -g forever
运维
npm i pm2 -g
pm2 init
pm2 start ecosystem.config.js
pm2 list
pm2 restart xxxx
pm2 log
下载
git clone https://github.com/versatica/mediasoup-demo.git
cd mediasoup-demo
git checkout v3
app客户端
broadcasters广播推流
server服务器端,媒体服务(管道通信)与信令服务
配置服务器
cd server
npm install
cp config.example.js config.js
// Listening hostname (just for gulp live
task).
domain : process.env.DOMAIN || ‘localhost‘,
// Signaling settings (protoo WebSocket server and HTTP API server).
https :
{
listenIp : ‘0.0.0.0’,
// NOTE: Don’t change listenPort (client app assumes 4443).
listenPort : process.env.PROTOO_LISTEN_PORT || 4443,
// NOTE: Set your own valid certificate files.
tls :
{
cert : process.env.HTTPS_CERT_FULLCHAIN || ${__dirname}/certs/<strong><span style="color: #ff0000;">fullchain.pem</span></strong>
,//证书
key : process.env.HTTPS_CERT_PRIVKEY || ${__dirname}/certs/<span style="color: #ff0000;"><strong>privkey.key</strong></span>
//证书
}
},
// See https://mediasoup.org/documentation/v3/mediasoup/api/#WebRtcTransportOptions
webRtcTransportOptions :
{
listenIps :
[
{
ip : process.env.MEDIASOUP_LISTEN_IP || ‘1.2.3.4′, //服务器IP或0.0.0.0,浏览器的传输
announcedIp : process.env.MEDIASOUP_ANNOUNCED_IP
}
],
initialAvailableOutgoingBitrate : 1000000,
minimumAvailableOutgoingBitrate : 600000,
maxSctpMessageSize : 262144,
// Additional options that are not part of WebRtcTransportOptions.
maxIncomingBitrate : 1500000
},
// See https://mediasoup.org/documentation/v3/mediasoup/api/#PlainRtpTransportOptions
plainRtpTransportOptions :
{
listenIp :
{
ip : process.env.MEDIASOUP_LISTEN_IP || ‘1.2.3.4‘, //普通的传输
announcedIp : process.env.MEDIASOUP_ANNOUNCED_IP
},
maxSctpMessageSize : 262144
}
/启动server
npm start
//客户端安装 app目录
npm install
npm install -g gulp-cli
gulp live //客户端
gulp dist //生成发布目录/server/public
启动nodejs服务
node app.js
nohup node app.js &
forever start app.js 推荐此方式
调试
node –inspect-brk server.js
chrome://inspect
再根据需要设置断点
sudo npm i -g npm
# 全局安装n
$ npm install -g n
# 升级到最新稳定版
$ n stable
# 升级到最新版
$ n latest
# 升级到定制版
$ n v12.13.1
# 切换使用版本
$ n 7.10.0 (ENTER)
安装完之后node -v 之后发现还是之前的版本呢,那么看下面
输入单独一个n 回车,通过控制上下键来选择你想要使用的node版本噢
有些小伙伴通过上面三步已经成功得到自己想要的版本了,但是有些小伙伴还是不行,那么不要着急,究极绝招来了,就是改node的环境变量,哈哈哈,一听到环境变量是不是一点都不陌生,那么接着往下看吧
a. 首先which node 找到node的安装目录,并复制我这里用默认目录代替哈 /usr/local/n/versions/node/10.0.0
b. 然后vim /etc/profile 在环境变量最后结尾部分加上
export NODE_HOME=/usr/local/n/versions/node/10.0.0
export PATH=NODE_HOME/bin:PATH
c. 最后记得source /etc/profile 让环境变量生效就可以了噢
for Ubuntu:
sudo apt-get remove –purge npm
sudo apt-get remove –purge nodejs
#手动删除 npm 相关目录
rm -r /usr/local/bin/npm
rm -r /usr/local/lib/node-moudels
find / -name npm
rm -r /tmp/npm*
npm 是 JavaScript 世界的包管理工具,并且是 Node.js 平台的默认包管理工具。通过 npm 可以安装、共享、分发代码,管理项目依赖关系
允许用户从NPM服务器下载别人编写的第三方包到本地使用。
允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了。同样可以通过输入 “npm -v” 来测试是否成功安装。命令如下,出现版本提示表示安装成功:
没有的话 apt install npm
https://www.npmjs.cn/
http://www.runoob.com/nodejs/nodejs-npm.html
安装cnpm
执行命令 sudo npm install -g cnpm –registry=https://registry.npm.taobao.org
使用npm的国内镜像(npm 国内镜像 https://npm.taobao.org/)cnpm 命令代替默认的npm命令,增加依赖包加载速度且避免资源限制。
更新
sudo npm i -g npm
安装
# 安装但不写入package.json;
$ npm install xxx
# 安装并写入package.json的"dependencies"中;
$ npm install xxx –S
# 安装并写入package.json的"devDependencies"中;
$ npm install xxx –D
# 全局安装
$ npm install xxx -g
# 安装特定版本
$ npm install xxx@1.0.0
-S(等同于--save)表示项目打包时会将该依赖包一并打包;-D(等同于--save-dev)表示该依赖包仅在开发环境下使用,正式打包不会加到项目中。
删除
# 删除xxx模块;
$ npm uninstall xxx
# 删除全局模块xxx;
npm uninstall -g xxx
更新
检查可以更新的模块,可以使用命令行:
$ npm outdated
需要更新模块,首先得更新package.json文件,可使用npm-check-updates依赖包:
# 安装"npm-check-updates"模块
$ npm install -g npm-check-updates
# 安装后,检查可更新的模块
$ ncu
# 或
$ npm-check-updates
# 更新package.json的依赖包到最新版本
$ ncu -u
package.json 更新后,为了保险起见,可删除整个node_modules目录并重新初始化项目。
不建议一次全部更新所有依赖包,可根据实际需求更新即可。全部更新有可能导致项目不稳定,甚至运行不起来,开发项目以稳定合适优先。
如若只需更新某个单一依赖包,可使用命令行:
# 可根据包作用范围在后面加上 -D、-S 或 -g
$ npm update xxx
该更新命令,只能按照package.js中标注的版本号进行更新,故更新前记得先修改package.json中所需更新的依赖包版本号。
快速删除项目中node_modules目录
# 安装"rimraf"模块
$ npm install rimraf -g
# 删除操作
$ rimraf node_modules