npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

front-deploy

v1.1.0

Published

前端自动化打包部署工具;A CLI tool for front-end projects deployment.

Downloads

148

Readme

front-deploy

前端轻量化部署脚手架,支持测试、线上等多环境部署,支持环境配置扩展,配置好后仅需一条命令即可完成整个部署流程。

git地址:

https://github.com/coder1573/front-deploy

npm地址:

https://www.npmjs.com/package/front-deploy

适用对象

目前还在采用手工部署又期望快速实现轻量化部署的小团队或者个人项目。

博客

编写中

前提条件

能通过ssh连上服务器即可

安装

全局安装front-deploy

npm i front-deploy -g

查看版本,表示安装成功。

fe-deploy -V

使用

1.初始化部署模板

fe-deploy init

2.配置部署环境

部署配置文件位于deploy文件夹下的deploy.config.js, 一般包含dev(测试环境)配置,再有多余的环境配置形式与之类似,也可以选择将dev或其他配置放置到conf子目录下。

主配置文件deploy.config.js

module.exports = {
  privateKey: '', // 本地私钥地址,位置一般在C:/Users/xxx/.ssh/id_rsa,非必填,有私钥则配置
  passphrase: '', // 本地私钥密码,非必填,有私钥则配置
  projectName: 'hivue', // 项目名称
  dev: { // 测试环境
    name: '测试环境',
    script: "npm run build:prod", // 打包脚本
    host: '', // 服务器IP地址
    port: 22, // ssh port,一般默认22
    username: '', // 登录服务器用户名
    password: '', // 登录服务器密码
    projectDir: '/projects/deploy', // 本地项目目录
    distPath: 'dist',  // 本地打包dist文件夹
    webDir: '/home/wwwroot/test/web',  // 服务器上传目录,即网站发布目录
    backupDir: '/home/wwwroot/test/bak',  // 服务器上传目录,即网站发布目录
  },
  prod: {  // 线上环境
    name: '线上环境',
    script: "npm run build:prod", // 线上环境打包脚本
    host: '', // 服务器IP地址
    port: 22, // ssh port,一般默认22
    username: '', // 登录服务器用户名
    password: '', // 登录服务器密码
    projectDir: '/projects/deploy', // 本地项目目录
    distPath: 'dist',  // 本地打包dist文件夹
    webDir: '/home/wwwroot/test/web',  // 服务器上传目录,即网站发布目录
    backupDir: '/home/wwwroot/test/bak',  // 服务器上传目录,即网站发布目录
  }
  // 再还有多余的环境按照这个格式写即可
}

子配置文件conf/beijing.conf.js

module.exports = {
  dev: { // 测试环境
    name: '测试环境',
    script: "npm run build:prod", // 打包脚本
    host: '', // 服务器IP地址
    port: 22, // ssh port,一般默认22
    username: '', // 登录服务器用户名
    password: '', // 登录服务器密码
    projectDir: '/projects/deploy', // 本地项目目录
    distPath: 'dist',  // 本地打包dist文件夹
    webDir: '/home/wwwroot/test/web',  // 服务器上传目录,即网站发布目录
    backupDir: '/home/wwwroot/test/bak',  // 服务器上传目录,即网站发布目录
  }
  // 再还有多余的环境按照这个格式写即可
}

3.查看部署命令

配置好deploy.config.js,运行

fe-deploy --help

查看部署命令

4.环境部署

测试环境部署采用的是dev的配置

fe-deploy dev

先按提示完成操作,确认后进入部署流程,执行完成后,部署成功!!!

⚠️注意:提示2中的是否增量部署的含义

  • 默认Y增量,只更新index.html、index.html.gz和static到服务器
  • N为全量dist目录下的所有文件都会上传到服务器

5.其他部署

部署流程参见4

fe-deploy [other env name]

感谢

本项目完全参考该开源项目

重新发布的原因

  1. 学习并练习动手能力(🐶主要原因)
  2. 原作者已经很久没有更新了,不是很满足当前业务需求
  3. 更改了部分逻辑更贴合作者当前的业务

当前业务需求是一个项目经常会部署到多个服务器上,每次更新都要进行手动上传至全部的服务器、备份等重复性操作,由于管理服务器较多很容易更新出错,且效率低下。偶然发现该项目,遂结合自己的业务进行了二次开发。

add features:

  • 增加网站备份
  • 重构配置文件生成方式、加载方式,支持子配置文件
  • 增加可选是否重新打包项目
  • 增加可选增量/全量更新
  • 部分其他优化

感谢大家支持,欢迎star,O(∩_∩)O。