前端自动上线系统

写以前没看到这个插件的开发者已经在掘进上发了文章,我这个没看懂或者须要更深刻的查看的,能够去他的页面或者去官网看文档。
使用nodejs改进发布流程(上)vue


警告

被玩坏了,好了,下面linux上删除文件的命令我删除了,我会加上这个工具开发者加的那个安全删除,要不你们要是运行如下rm -rf *或者斜杠多个空格,估计下面警告都不用看了。node

配置好的文件不要用代码托管,由于配置文件里有你服务器的信息,丢了老大杀了你怎么办,我也很为难啊。linux

若是你还想好好活着,配置好的文件不要发到网上,包括但不限于github等的网站,虽然你的烂代码没人看,可是万一呢。
若是你还想好好活着,配置好的文件不要发到网上,包括但不限于github等的网站,虽然你的烂代码没人看,可是万一呢。

如何让git或者svn忽略它们你本身查。

若是本文章让你感到懵逼,能够去官网看看,我只是在官网文档找了一些我须要的配置。nginx

首先全局安装fjpublishgit

npm i fjpublish -g
//或者
yarn global add fjpulish复制代码

而后把下面的配置文件放到项目根目录,文件名fjpublish.config.jsgithub

module.exports = {
  //modules开始   里面能够配置多个环境,好比测试环境,预发布环境,和正式环境,固然,也能够配置一个
  modules: [{     // 如下内容为假数据,到时候改为真实服务器地址,
      name: '测试环境', // 设置发布环境的名称易于辨识,就是起个名字
      env: 'test',    // 发布环境的惟一标识符
      ssh: {          // 服务器的ssh配置,不知道的本身问运维大哥
          host: '0.0.0.0',
          port: 22,
          user: 'root',
          userName: 'root',
          password: 'password',
      },
      buildCommand: 'build',  //这个意思是运行的时候能够自动构建,这个必须放你构建时候的代码,我这里构建用的是npm run build,因此写build
      localPath: 'dist',      // 要发布的文件夹的根目录,建议用相对路径,若是当前不存在,build后产生的文件夹,也要写这个不存在的文件夹名
      remotePath: '/data/d5-meal', // 要发布到远程服务器的路径,必须是一个二级及以上的绝对目录路径,
      tag: '123'                // 不解释
  },{  // 如下内容为假数据,到时候改为真实服务器地址
    name: '预发布环境',
    env: 'pre_release',
    ssh: {
        host: '00.0.0.0',
        port: 22,
        user: 'root',
        userName: 'root',
        password: 'password',
    },
    buildCommand: 'build',
    localPath: 'dist',
    remotePath: '/data/d5-meal',
    tag: 'v1.0'
},{  // 如下内容为假数据,到时候改为真实服务器地址
  name: '正式环境',
  env: 'publish',
  ssh: {
      host: '00.0.0.0',
      port: 22,
      user: 'root',
      userName: 'root',
      password: 'password',
  },
  buildCommand: 'build',
  localPath: 'dist',
  remotePath: '/data/d5-meal',
  tag: 'v1.0'
}],
  //modules结束
 // nobuild: true,     //  若是写了,就不默认运行上线命令的时候运行npm run build
  tag: 'v1.0',           
  afterHooks: {  // 控制台打印一些信息,无关紧要吧
    when: 'prompt',
    fn({ name, ssh: { host }, localPath = '.', localPathEntries = [], remotePath, nobackup = false, nobuild = false, merge = false }, env, next) {
        console.log(`Config: ...
                    name: %s
                    env: %s
                    host: %s
                    ======
                    local path: %s
                    local entries: %s
                    remote path: %s
                    ======
                    nobuild: %s
                    nobackup: %s
                    merge: %s
                    `, name, env, host, localPath, localPathEntries, remotePath, nobuild, nobackup, merge);
                            next();
                    },
          }
}复制代码

fjpublish env -s/-m 标准发布 shell

-s 以单选提示器的方式选择发布环境。vue用过 -m 以多选提示器的方式选择发布环境, 单选和多选只须要配置其中之一便可。记得按回车选定npm

-d 开启差别化(diff)发布,发布项目时只上传有改动或新增的文件,这样作能大大提高项目上传的速度。自动开启merge,和服务器文件对比,可是不能禁用历史记录功能。想一想也好理解安全

--nobackup 发布时是否备份旧文件。默认进行备份,备份方式为例如abc文件将被备份为abc.{时间戳}。 若选择不备份,fjpublish为了安全起见是进行软删除, 即便用mv命名移动至shellTrashPath设置的目录,默认为'/tmp/fjpublishTrashDir',例如备份/www/test/abc,则将其移动至/tmp/fjpublishTrashDir/www.test.abc.{时间戳} 。bash

还原

是能够还原的,有须要的看官网或者插件做者博客吧。

如何使用mac登陆服务器,

ssh root@0.0.0.0   //root 替换为服务器管理员的username,后面的IP换成服务器地址
// 而后输入密码就上去了
// 服务器上删除文件  rm -rf 文件名   (千万别用,大杀器)复制代码

若是你不像保存之前的版本,那就日后加一个--nobackup吧。

结论

使用这个之后,以Vue-cli为例,只须要在上线的时候运行fjpublish env -s,而后选择上线的环境,就好自动帮你build一份上传到服务器,对,就是这样的,npm run build这个命令你都不须要输入,下次有空说说服务器上的nginx怎么配。

相关文章
相关标签/搜索