joyer-cli
京东金融构建工具joyer-cli
Node版本 - 统一使用最新的LTS版本,目前为v8.16.0(LTS),推荐安装方式nvm - 原因:Node奇数版本为stable版本,偶数版本为LTS(Long Term Support)版本,后者维护期更长,更稳定 - 统一使用npm作为包管理工具,不使用yarn - 原因:npm从5.x版本以后已经加入yarn的大部分特性,包括package-lock.json、默认--save、cache重写带来的安装速度提升(不输yarn)等,详见 - Node v8.x内置了npm v6.x,交叉使用npm和yarn会产生功能类似的重复文件及一些未知风险,使用比例
使用文档
安装joyer-cli - npm install joyer-cli -g - 绑定host(为了能上传测试环境): - 172.23.190.105 check.jr.jd.com
joyer init 创建新项目 - joyer init -h 输出帮助提示 - joyer init -l 输出可用模板列表 - joyer init 使用指定模板创建项目,是joyer init -t的缩写 - joyer init 不传递参数,创建项目的过程中会提示选择模板 - joyer init --subonly 不创建父目录,直接在当前目录生成项目 - 以上`` 参数均可使用模板索引传入, 例如: joyer init -l输出: 0.zepto - based on zepto, applicable for simple single page 1.vue - based on vue, applicable for complex project 2.react - based on react, applicable for complex project, too 我们可以使用joyer init 1或者joyer init vue来指定使用vue模板创建项目 - 若要终止创建项目,ctrl+c结束进程即可
joyer install 安装模板组件joyer-components - joyer install -l 列出所有当前模板可用组件 - joyer install componentNameA componentNameB 指定组件名并安装 - joyer install 安装所有可用组件(会覆盖本地已有的组件)
joyer mock 在当前目录启动一个mock服务 - 当前目录需要有mock.js文件 - 启动命令: joyer mock //默认端口8001 joyer mock -p 8090 //指定端口8090 - tips: 使用joyer-cli构建环境的项目,可以在项目配置joyer-config.js中直接开启该功能,无须额外开启,详细文档见mock wiki
joyer deploy 上传测试环境 - 目前默认支持两个测试环境: - joyer deploy minner上传至http://minner.jr.jd.com(内网),需要绑定 host 172.23.190.105 check.jr.jd.com - joyer deploy utest上传至https://utest.jr.jd.com(内网),无需绑定 host - 使用内置构建环境的项目,可以直接通过以上命令将构建生成目录./dist子目录发送到测试机器,如./dist/abc访问路径为http://minner.jr.jd.com/abc/或https://utest.jr.jd.com/abc/ - 没有使用内置构建环境的项目可通过joyer deploy minner -d或joyer deploy utest -d来上传``目录下所有内容,不包含本身目录。 - 访问路径取决于项目目录,比如目录是/a/b/c/index.html则访问路径是http://minner.jr.jd.com/a/b/c/index.html或https://utest.jr.jd.com/a/b/c/index.html - 可自定义上传配置,见详细文档
joyer serve 静态部署 - joyer serve -h 输出有关serve子命令的帮助提示 - joyer serve -v 查看该joyer-serve版本号 - 可以通过在serve后面加入path、port来更加精准的操作它 joyer serve 默认3000端口的当前子目录 joyer serve 部署指定目录 joyer serve -p 部署指定port的指定目录 - 若要终止serve的运行,ctrl+c结束进程即可
重要依赖及选择原因 - webpack@4.20.2 - 目前为最新的稳定版本,相比3.x编译速度提升了近2倍,更好的代码分离机制,更多的模块类型支持,详见 - 使用其node api模式而非cli模式,目的在于有利于开发环境同时并存多个webpack版本,缺点是每个文件目录会比较大 * 疑问点,目前大部分项目应该是在3.x版本下构建,迁移成本? - webpack-dev-server@3.1.9 - 目前最新的稳定版本,适配webpack@4.x,v3.1.2之前的版本存在proxy的bug - @babel/preset-env@7.1.0 - 完美解决了babel-polifyll的问题,无需全量打包 - @babel/core@7.1.2 - 适配@babel/preset-env@7.1.0
问题记录 - `joyer install