前端工程配置提交前格式化
一、安装依赖yarn add husky lint-staged prettier pretty-quick --dev 二、执行Husky创建一个.husky目录, 此时目录下会有一个pre-commit文件npx husky init修改pre-commit文件#!/bin/sh . "$(dirname "$0")/_/husky.sh" # npm
一、安装依赖yarn add husky lint-staged prettier pretty-quick --dev 二、执行Husky创建一个.husky目录, 此时目录下会有一个pre-commit文件npx husky init修改pre-commit文件#!/bin/sh . "$(dirname "$0")/_/husky.sh" # npm
一、封装缓存preventRequest.jsimport Qs from 'qs'; class preventRequest { constructor(options) { const { maxNum, expiredTime } = options || {}; // 请求队列 this.list = []; this.MAX_NUM = maxN
import BigNumber from "bignumber.js"; // 格式化date 【2023-08】 export function formatDate(date, flag) { cons
【Session.js】 class storageFn { constructor(storage = sessionStorage) { this.get = (key) => { cons
// 事件监听绑定 export const onEvents = (target, type, handler, option) => { if (target.addEventListener) { target.addEventListener(type, handler, option) } else if (target.on) { target.on(ty
一、通用版const webpack = require('webpack') const TerserPlugin = require('terser-webpack-plugin') const CompressionPlugin = require('compression-webpack-plugin') const MiniCssExtractPlugin = require('mini
一、路由拦截篇与vue不同的是,nuxt需在plugins目录下创建router.js文件export default ({ app, store }) => { app.router.beforeEach((to, from, next) => { next() }) app.router.afterEach((to, from) => { })
结构树// tree数据结构 export default [ { code: "01", desc: "农、林", isOpen: false, hasParent: "N", children: [ { code: "0101",
// 消息提示队列 // 同时有多个api返回失败消息的时候,以队列方式依次显示,避免消息文字显示重叠 const toastQueue = { queue: [], instance: null, enq(message, options = null) { this.queue.push({ message, options }); this.next(); }
水印毫无疑问当然是canvas画图,全局水印 = 将canvas水印DOM定位挂载在document.body上,可以理解为在当前可视窗口最上方盖了一层层级较高的蒙版,这个蒙版就是水印// water-market.js// 水印内容较长可以设置can的width,height属性 // water-market.js // 水印内容较长可以设置can的width,height属性 const