package-lock.json 的作用
package-lock.json 文件的作用参考:https://www.cnblogs.com/kugeliu/p/9153775.html npm5 之后安装文件之后会多出一个 package-lock.json 的文件,它的作用是: 安装之后锁定包的版本,手动更改 package.json 文件安装将不会更新包,想要更新只能使用 npm install xxx@1.0.0 --save 这种方式来进行版本更新,package-lock.json 文件才可以 加快了 npm install 的速度,因为 package-lock.json 文件中已经记录了整个 node_modules 文件夹的树状结构,甚至连模块的下载地址都记录了,再重新安装的时候只需要直接下载文件即可 它的意义在于锁定了包的版本,确保能够避免包版本不同产生的问题。 最外面的两个属性 name、version 同 package.json 中的 name 和 version,用于描述当前包名称和版本。 dependencies 是一个对象,对象和 node_modules 中的包结构一一对应,...
PM2 的 Cluster 模式下使用 Log4js
配置log4js.config1234567891011121314151617181920{ /** * pm2 (boolean) (optional) * - set this to true if you're running your app using pm2, * otherwise logs will not work (you'll also need to install pm2-intercom as pm2 module: pm2 install pm2-intercom) */ "pm2": true, /** * pm2InstanceVar (string) (optional, defaults to 'NODE_APP_INSTANCE') * - set this if you're using pm2 and have changed the default name of the NODE_APP_INSTANCE variable...
解决 Could not find any Visual Studio installation to use 的问题
参考链接: https://github.com/nodejs/node-gyp/issues/2203 https://stackoverflow.com/questions/57541402/node-gyp-configure-got-gyp-err-find-vs/63311413#63311413 https://www.jianshu.com/p/e2f12fab2b78 Node 版本 12.22,Windows 10 执行 npm install 报错信息如下 错误信息123456789101112131415161718192021222324252627282930313233gyp ERR! find VSgyp ERR! find VS msvs_version not set from command line or npm configgyp ERR! find VS VCINSTALLDIR not set, not running in VS Command Promptgyp ERR! find VS checking VS2017 (1...
Koa + CLS + Log4js 实现全链路日志系统
什么是全链路日志在线上项目运行期间,经常会出现各种莫名其妙的 bug,而且一个请求往往会经过多个项目的接口调用。比如电商中的下订单,可能会调用到商品服务、优惠券满减服务、会员服务之类的。假如某一时刻下单失败,前端报了个系统异常,怎么样快速定位到底是哪个服务发生了异常,以及定位发生异常的服务具体是报了什么异常日志呢。 这就是全链路日志要做的事情,它把这个请求内调用到的所有请求通过全局 ID 串起来,通过全局 ID 可以把所有涉及到的系统日志都快速地定位出来。 日志开发架构图 之后 Logstash 后可能需要加 Queue 为后续大数据做准备 技术栈 功能 技术栈 日志 Log4js 异步资源追踪 cls-hooked Web 框架 Koa Node 12 REST - 传递 header[trace-id] Axios 思路 请求打进来,由网关下发全局唯一 ID Koa 框架可以获取同步请求的上下文,但在异步中需要上下文持久的问题(比如 async_hook) 需要保证当前项目所有 category 的 log 可用,且打印 trace-id ...
Linux 安装 Node.js
历史版本可从 https://nodejs.org/zh-cn/download/releases/ 下载 通过 FTP 工具上传到 Linux 服务器,解压安装包1tar -xvf node-v10.16.0-linux-x64.tar.xz 移动并改名文件夹(不改名也行)123cd /usr/local/mv /var/ftp/pub/node-v10.16.0-linux-64 . # 后面的 . 表示移动到当前目录mv node-v10.16.0.0-linux-64/ nodejs 让 npm 和 node 命令全局生效(方式选择任一)方式一:环境变量方式(这种方式只对登录用户有效) 加入环境变量,在 /etc/profile 文件末尾增加配置: 12vi /etc/profileexport PATH=$PATH:/usr/local/nodejs/bin 执行命令使配置文件生效: 1source /etc/profile 方式二:软链接方式(推荐)12ln -s /usr/local/nodejs/bin/npm /usr/local/bin...
自定义 npm 包发布及下载
封装 npm 包上传到 npmjs.com定义 package.json12345678910111213141516{ "name": "logger-server", // 会被当作包名存在,不可与现有 npm 仓库的包名重复(例如已经有了 log4js,这里就不能叫 log4js) "version": "1.0.0", // 打版本标签 "private": true, // 这个字段可以防止代码被公开发布 "description": "日志自定义封装", "main": "index.js", "author": "xiaowu", "repository": { // 可不配 "type": "git"...
