jne-cli
v1.0.0
Published
FE Node development solution, fork from qxf
Downloads
2
Readme
fork from jne
jiulvxing node 开发解决方案
让你只专注在业务和展现
项目地址:http://gitlab.corp.jiulvxing.com:88/fe/jne-cli 使用文档:https://tower.im/projects/7a14e057a07a43948352903af22ecdc4/docs/4102997dfd2e42ccb6fdc4541de86e6d/
本地安装
npm install jne -g --registry=http://registry.npm.taobao.org
其他包依赖公司内部的npm源,你需要先安装qnpm,安装方式
通过alias命令
alias qnpm="npm --registry=http://registry.npm.corp.qunar.com/ --cache=$HOME/.npm/.cache/qnpm --userconfig=$HOME/.qnpmrc"
或者在~/.bash_profile
或~/.zshrc
中增加如下配置:
# alias for qnpm
alias qnpm="npm --registry=http://registry.npm.corp.qunar.com/ --cache=$HOME/.npm/.cache/qnpm --userconfig=$HOME/.qnpmrc"
然后运行:
source ~/.bash_profile # base环境
source ~/.zshrc # zsh环境
命令支持
jne 使用说明
===========================
jne init 初始化一个项目
jne dev 启动项目本地服务
jne initserver [-w <webappFoler> -s <serviceName>] 服务器目录和服务初始化
jne initschema qdr发布系统schema初始化
jne remote -r <serverlist> -c <remoteCommand> 远程执行命令
jne sync [server] 同步文件到服务器
如何创建一个jne工程
1. 在项目目录里执行 `jne init`
2. 运行 `qnpm install`
3. 运行 `bin/dev`
服务器安装
新申请的服务器,在申请服务器时可以选择预装QXF,这样就不用到服务器上做任何安装了
如果是原来的服务器或者申请的时候忘了选择预装,需要执行一下步骤安装:
- ssh 登录服务器
- 运行
sudo yum install q-node
- 运行
sudo npm install jne -g --registry=http://registry.npm.taobao.org
服务器web环境配置
配置web环境有如下三种方式(推荐使用第3种方式配置):
ssh 登录服务器,执行
sudo jne initserver
按照提示输入所需参数,或者执行sudo jne initserver -w <web目录名称> -s <service名称>
在本地可以ssh登录到服务器的终端执行
jne remote -r '<服务器列表>' -c 'sudo jne initserver -w <webappFolder> -s <serverName>'
按照说明配置工程里的package.json中的schema内容,在本地可以ssh登录到服务器的终端执行
jne initserver --config
服务器列表支持格式:
l-home[m-n].fe.cn5
l-home[x,y,z].fe.cn5
l-home[m-n].fe.cn5,l-home[x,y,z].fe.cn5,...
包含模块
qzz版本号 @qnpm/q-version
使用
var qversion = require('@qnpm/q-version');
// 初始化版本号
qversion.parse(path.join(__dirname, 'refs')); // 参数为ver目录所在路径
模板 @qnpm/q-template
使用
var qtemplate = require('@qnpm/q-template');
// 设置模板引擎
qtemplate(app, {
views: __dirname + "/views", // 总模板目录
layouts: 'layouts', // layout模板目录,默认views/layouts
versions: qversion.versions()
});
日志 @qnpm/q-logger
日志组件支持多进程工程,由主进程统一负责记录日志,支持不同的路由记录不同的日志文件,配置如下:
{
logFiles: [
{
type: 'track', // 名称
route: ['/track.htm', '/timetrack.htm'], // 路由,支持express风格路由
appenders: [ // log4js appenders配置
{
"type": "file",
"filename": "track.log",
"category": "track",
"level": "LOG",
"layout": {
"type": "messagePassThrough"
}
}
]
}
]
}
使用
初始化
主进程:
logger.init("master", [option]);
// [option]为多日志文件配置,如上
工作进程:
var logger = require('@qnpm/q-logger');
logger.init('worker', [option]); // 初始化日志系统
接口:
logger.error(); // 记录错误
logger.info(); // 记录普通日志
异常 @qnpm/q-exception
使用
var exception = require('@qnpm/q-exception');
exception.init(logger); // 初始化异常捕获系统,需传入logger用作错误记录
// 捕获异步异常,放到所有中间件前面
app.use(exception.catchAsync());
// 捕获同步异常,放到所有中间件后面
app.use(exception.catchSync());
healthcheck @qnpm/q-healthcheck
使用
var healthcheck = require('@qnpm/q-healthcheck');
// healthcheck 发布时有用
healthcheck.check(app, path.join(__dirname, 'healthcheck.html')); // 传入healthcheck的路径
监控 @qnpm/q-monitor
使用
var qmonitor = require('@qnpm/q-monitor');
qmonitor.addCount('监控指标名');
qmonitor.addTime('监控指标名', '时间');
多进程 @qnpm/q-multiprocess
使用
var opts = {
// CPU核数
numCPUs: require('os').cpus().length,
// 端口
port: app.get('port'),
// 子进程收到父进程消息后父进程执行方法
workerMessage: function (msg, workers) {
},
ready: function(workers) {
}
};
multiprocess.listen(app, opts);