持续集成 CI
- 在持续集成环境中,开发人员将会频繁的提交代码到主干。这些新提交在最终合并到主线以前,都须要经过编译和自动化的测试流程进行验证。白话文说 就是让代码自动编译,合并,并进行测试
持续交付 CD
- 持续交付就是讲咱们的应用发布出去的过程。这个过程能够确保咱们尽量快的实现交付。这就意味着除了自动化测试,咱们还须要有自动化的发布流,以及经过一个按钮就能够随时随地实现应用的部署上线。白话文说 就是一键部署上线
devops 持续部署平台前端
大体的开发到部署上线流程
- 统一代码仓库经过分支管理合并主干svn或者git
- 自动化构建工具,编译、部署、测试、监控、本机开发上线环境。 FIS3/Webpack/jdists(区分上线环境和开发环境)/package.json/chai/supertest/mocha/selenium-webdriver
- 持续集成平台。Jenkins、Travis CI
- 持续部署工具。 rsync、shelljs、yargs
端口冲突shell
-
查看端口 lsof -i:80
node
-
解决端口冲突webpack
#!/bin/bash
base_port="80"
check_port=`lsof -i:$base_port | awk '{print $2}'`
while [ "$check_port" != "" ]
do
let base_port=base_port+1
check_port=`lsof -i:$base_port`
done
echo $base_port
复制代码
具体用法参考见 npm npm init
npm install shelljs --save-dev
git
#!/usr/bin/env node (where node)
const shell = require("shell.js");
shell.mkdir("")
复制代码
-
标准开发 基本标配web
- 开发机器 :开发环境、git/svn、开发工具(vscode)
- 代码仓库 :gitlab hooks钩子交给jenkins
- CI平台 :Jenkins webpack编译 私钥 产生dist扔给QA
- QA机器 :公钥
- 几个关键的点
- ci机器上部署Jenkins
- 执行测试 npm run test /npm run build
- cd交付代码测试 获取上线权限
-
前端模块化shell
- webpack 使用的是 commonjs规范 将全部js直接打包到一个文件里
- AMD 是等全部模块加载过来
define(['dep1','dep2'],function(dep1,dep2){
return function(){};
})
复制代码
- CMD 同步执行 先把 require里的东西正则匹配到 先把全部的js请求回来
- UMD 同时支持 CMD AMD COMMONJS
复制代码
- importScript 支持跨域 import 不支持跨域