作者: admin

  • RxJS 之于异步,就像 JQuery操作dom一样操作event事件

    可以理解RxJS是js事件界的lodash。

    cdn:

    <script src="https://cdn.bootcdn.net/ajax/libs/rxjs/7.5.5/rxjs.umd.min.js"></script>

     

    Es6

    npm install vue vue-rx rxjs --save
    
    
    import Vue from 'vue'
    import VueRx from 'vue-rx'
    
    Vue.use(VueRx)

     

     

    简单案例:

    一次声明多个异步代码

    // stream$尾部的$是表示当前这个变量是个ovservable
     const stream$ = new rxjs.Observable.create(subscriber => {
       setTimeout(() => {
         subscriber.next([1, 2, 3]);
       }, 500);
       setTimeout(() => {
         subscriber.next({ a: 1000 });
       }, 1000);
       setTimeout(() => {
         subscriber.next("end");
       }, 3000);
       setTimeout(() => {
         subscriber.complete();
       }, 2000);
     });
    
    
     // 启动流
     const subscription = stream$.subscribe({
       complete: () => console.log("done"),
       next: v => console.log(v),
       error: () => console.log("error")
     });
     
    // [1,2,3]  // 500ms时
    // {a:1000} // 1000ms时
    // end // 3000ms时
    // done // 4000ms时

     

     

    执行顺序

    var observable = rxjs.Observable.create(function (observer) {
      observer.next(1);
      observer.next(2);
      observer.next(3);
      setTimeout(() => {
        observer.next(4);
        observer.complete();
      }, 1000);
    });
    
    console.log('just before subscribe');
    observable.subscribe({
      next: x => console.log('got value ' + x),
      error: err => console.error('something wrong occurred: ' + err),
      complete: () => console.log('done'),
    });
    console.log('just after subscribe');
    
    
    //just before subscribe
    //got value 1
    //got value 2
    //got value 3
    //just after subscribe    //后面代码会继续执行
    //got value 4
    //done

     

     

    complete()后的代码不执行

    var observable = Rx.Observable.create(function subscribe(observer) {
      observer.next(1);
      observer.next(2);
      observer.next(3);
      observer.complete(); //一旦执行complete,就结束了
      observer.next(4); // 因为违反规约,不会执行
    });

     

     

    中途停止

    var observable = rxjs.Observable.create(function (observer) {
        observer.next(1);
        observer.next(2);
        observer.next(3);
        setTimeout(() => {
          observer.next(4);
        }, 1000);
    
        setTimeout(()=>{
          observer.complete();
        },2000)
    
      });
    
    
     var run = observable.subscribe({
        next: x => console.log('got value ' + x),
        error: err => console.error('something wrong occurred: ' + err),
        complete: () => console.log('done'),
      });
    
      setTimeout(()=>{
        run.unsubscribe()  
      },1500)
      
      
    //got value 1
    //got value 2
    //got value 3
    //got value 4

     

     

    外部调用:

    var subject = new rxjs.Subject();
    
    
      document.getElementById('x').onclick=function (){
        subject.next(1);
      }
      
      setTimeout(()=>{
        subject.next(2);
      },1000)
    
    
    
      subject.subscribe({
        next: (v) => console.log('值: ' + v)
      });

     

     

    中文官网:https://cn.rx.js.org/

    rxjs整合vue插件vue-rx官网:https://github.com/vuejs/vue-rx

    vue-rx案例:https://blog.csdn.net/kuangshp128/article/details/81561307

  • pnpm软件包管理器

    有了npm、yarn现在又出了一个pnpm

    当使用 npm 或 Yarn 时,如果你有 100 个项目,并且所有项目都有一个相同的依赖包,那么, 你在硬盘上就需要保存 100 份该相同依赖包的副本。然而,如果是使用 pnpm,依赖包将被存放在一个统一的位置,因此以项目和依赖包的比例来看,使用 pnpm 将节省大量的硬盘空间, 并且安装速度也能大大提高,目前,pnpm 已发布 7.0.0 版本,此版本包含许多新功能、性能优化以及错误修复,主要更新内容如下:

     

    pnpm 7.0.0 发布

    • 不再支持 node.js 12
    • 按路径筛选由 globs 完成
    • 允许在与包名称不匹配的目录中执行生命周期脚本
    • 默认情况下,embed-readme 为 false
    • pnpx 现在只是 pnpm dlx 的别名

     

    关于 pnpm

    pnpm 是一款磁盘空间高效的软件包管理器。

    • pnpm 号称是同类工具速度的将近 2 倍
    • node_modules 中的所有文件均链接自单一存储位置
    • pnpm 内置了对单个源码仓库中包含多个软件包的支持
    • pnpm 创建的 node_modules 并非扁平结构,因此代码不能对任意软件包进行访问

     

    中文文档:https://www.pnpm.cn/

  • swiper.js中文文档

    swiper.js已经更新到8.x了

    html

    <script src="https://cdn.bootcdn.net/ajax/libs/Swiper/8.1.4/swiper-bundle.js"></script>
    <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/Swiper/8.1.4/swiper-bundle.css" />
    <style>
    .swiper{height: 300px}
    </style>
    <div class="swiper mySwiper">
        <!-- Additional required wrapper -->
    
        <div class="swiper-wrapper">
            <div style="background: red;height: 50px" class="swiper-slide">Slide 1</div>
            <div style="background: green;height: 150px" class="swiper-slide">Slide 2</div>
            <div style="background: pink" class="swiper-slide">Slide 3</div>
            <div class="swiper-slide">Slide 4</div>
            <div class="swiper-slide">Slide 5</div>
            <div class="swiper-slide">Slide 6</div>
            <div class="swiper-slide">Slide 7</div>
            <div class="swiper-slide">Slide 8</div>
            <div style="background: #000" class="swiper-slide">Slide 9</div>
        </div>
    
        <!-- If we need pagination -->
        <div class="swiper-pagination"></div>
    
        <!-- If we need navigation buttons -->
        <div class="swiper-button-prev"></div>
        <div class="swiper-button-next"></div>
    
        <!-- If we need scrollbar -->
        <div class="swiper-scrollbar"></div>
    </div>

     

     

    const swiper = new Swiper('.swiper', {
            // Optional parameters
            autoplay: {
              disableOnInteraction: false, //用户手动轮播后,继续自动轮播
              delay:2000,
            },
            slidesPerView: 2, //1屏显示几个slide,默认显示1个,全展示
            centeredSlides : false,//配合slidesPerView才能看出效果,true时,active slide会居中,其他会被遮挡
            centerInsufficientSlides:false, //默认false,如果设置true,实际slide数量小于slidesPerView数量,slide会居中
            centeredSlidesBounds: false, //true时让第一个slide和最后一个slide贴边
         
            direction: 'horizontal', //水平  'vertical' 垂直滚动
            loop: false, //无缝接无循环
            speed: 400,  //滚动速度
            spaceBetween: 100, //间距
            allowSlideNext:true, // false表示禁止切换下一页
            allowSlidePrev:true, // false表示禁止切换上一页
            allowTouchMove:true, //false禁止用手势滑动
            autoHeight:false, //true自适应高度
     
            // breakpointsBase:'window', //默认根据窗口变化
            // breakpoints: {  //根据窗口大小来改变属性
            //     '@1.50': {   //大于该比例时触发
            //         direction:'vertical'
            //     },
            //     320: {  //当屏幕宽度大于等于320px触发
            //
            //     },
            // },
            createElements: false,//自动生成元素,不实用
            containerModifierClass: 'swiper-', //修改容器前缀
            cssMode: false, //靠css驱动swpier滑动效果,性能提供,但很多功能就丢失了,不实用
            edgeSwipeDetection:false, //true时手指放在swpier最边缘的时候时无法滑动的,考虑一些手机手势在最边缘的动作是切换上一个app和下一个app
            edgeSwipeThreshold : 20, //屏幕边缘探测距离,配合edgeSwipeDetection:true时使用
            effect:'silde', //切换效果,还可设置为"fade"(淡入)、"cube"(方块)、"coverflow"(3d流)、"flip"(3d翻转)、"cards"(卡片式)、"creative"(创意性)
            enabled: true,//false,禁用swiper
            focusableElements:'input,select, option, textarea, button, video, label',//这些元素放到slide里面会被touchStartPreventDefault阻止,触摸无效
            followFinger: true,//false时,滑动页面时,只有手指离开了才会触发
            // If we need pagination
            pagination: {
                el: '.swiper-pagination',
            },
    
            // Navigation arrows
            navigation: {
                nextEl: '.swiper-button-next',
                prevEl: '.swiper-button-prev',
            },
    
            // And if we need scrollbar
            scrollbar: {
                el: '.swiper-scrollbar',
            },
        });

     

    中文:https://sdeno.com/wp-content/uploads/2022/05/swiper/www.swiper.com.cn/api/index.html

    原文档:https://swiperjs.com/swiper-api#swiper-full-html-layout

     

  • vue各版本介绍

    引入第三方cdn你会发现vue有多个不同版本命名文件

     

    cjs
    全名CommonJS,适用于 Node 和 Browserify/Webpack

     

     

    runtime
    不含 compiler(用于编译的) 组件,也就是说不能这么写

    new Vue({
      el: "#box",
      template: "<div>{{msg}}</div>", //不能使用template属性
    });

    jskoa.com/?p=8331

     

    prod
    表示这个是生产环境使用的版本,代码会进行丑化压缩,有些变量可能会使用a,b,c来代替

    min
    代码仅仅做了压缩处理删除多余空白、换行而已

     

     

    esm
    让浏览器支持 <script type=”module”> 这样方法引入,但是对浏览器要求高

    //module.js
    export default function test(){
      return 'test...'
    }
    
    // index.js
    import test from './module.js';
    console.log(test())
    
    
    
    
    <body>
      // ⽅法 1 :引⼊module.js,然后在script标签⾥⾯调⽤
      <script type="module">
        import test from './module.js';
        console.log(test())
      </script>
      
      // ⽅法 2 :直接引⼊index.js,使⽤src引⼊
      <script type="module" src="./index.js"></script>
    </body>

     

    global
    是包含编译器和运行时的“完整”构建版本

    bundler
    说明文件走了类似webpack、gulp打包生产出来的

    browser
    适用于浏览器使用<script src=””>

     

     

     

     

  • js常用前端插件

    推荐库

    这里主要推荐一下自己平时常用,提高效率的一些库和软件。

    #前端常用

    • sweetalert2 一个自适应,且自定义性强的弹出框(零依赖)
    • tippy.js 最著名的 tooltip/popover library
    • text-mask 可以让 input 按照规则输入(如电话,email,日期,信用卡等),特殊格式 input
    • dinero.js 用来创建、计算和格式化货币价值的不可变的框架,支持国际化
    • lerna 大项目版本控制工具,项目中可以有多个 package.json 文件
    • img-2 一个提高图片加载性能和体验的库,懒加载使用 web worker 模糊预览
    • fingerprintjs 是一个快速的浏览器指纹库,通浏览环境的一系列配置生成 id
    • ajv 一个 json schema 验证的库
    • dayjs 一个轻量级类 moment.js API 时间库
    • primjs 让页面支持代码高亮
    • ReLaXed 一个将 document html 转成 PDF 的工具
    • uppy 一个很好看的也很好用的 前端上传库
    • Filepond 一个小巧的文件上传库
    • tui-calendar 功能全面的日程安排日历控件,还支持拖拽
    • tui.editor markdown 所见即所得编辑器
    • tabler 基于 Bootstrap 4 的 Dashboard UI Kit 和美观 高颜值 ui 模板
    • pulltorefresh.js 下个下拉刷新插件
    • lulu 腾讯阅文基于 jQuery,针对 PC 网站 IE8+(peak 主题)的前端 UI 框架
    • chancejs 生成随机数据的库
    • spritejs 360 奇舞团出的跨平台绘图对象模型
    • tui.image-editor 一个功能齐全的在线图片编辑,基于 canvas
    • nanoid 前端轻量 unique string ID 生成库
    • rxdb 一款开源的快速、灵活的客户端数据库,支持各种浏览器以及 NodeJS,Electron、React 等等,是 PouthDB 之上的一个封装库
    • percollate 命令行工具 能将网页转换成 pdf
    • rawact 一个 babel 插件,把 react 组件转为原生 dom
    • irondb 是一个浏览器 key-value 储存的封装库,把 Cookies、IndexedDB、LocalStorage、SessionStorage 统一成一个接口。它的最大特色就是数据冗余机制,即使某种底层储存机制失效,它可以从其他机制恢复数据。
    • big.js 解决 js 浮点数问题。 主要就是 Big Number 或者小数点温柔
    • bignumber.js 同上
    • stickybits CSS 的 position: sticky 是一个很有用的设置,但是老的浏览器不支持。这个 JS 库是该功能的垫片库。
    • react-jsonschema-form Mozilla service 开源了一个通过 JSON 直接生成表单的 React 组件
    • cleave.js 用于在输入时格式化输入内容(信用卡格式、日期等)
    • shiny 在手机设备上模拟光的反射效果。 支持 DeviceMotion 事件
    • cloudquery Turn any website to serverless API
    • A-Programmers-Guide-to-English 专为程序员编写的英语学习指南。
    • rrweb 一个可以记录你页面中所有操作的库
    • nodeppt markdown 写 ppt
    • flexsearch 能让你更加高效和快速的检索文本内容
    • public-apis 汇集了市面上一些对外免费开放的 api,做一些自己练手 app 的时候很好用。
    • scroll-hint 用于提示用户页面可以左右滑动的一个提示库
    • fuse.js 轻量级前端模糊查询库 非常的好用
    • FileSaver.js 文件下载插件 很多时候下载会有兼容性问题,它能帮你解决这些问题
    • instant.page 一个判断用户行为 预测提前加载页面的库
    • screenfull.js 浏览器全屏插件 解决了不少兼容性问题
    • VuePress 本网站就是基于它实现的,简单方便的静态网站生成器
    • selection 可视化选择页面元素的库
    • scroll-out 滚动效果(滚动视差)的框架,框架大小不到 1KB,使用回调的方式将相关动画元素的属性进行实时分配
    • gpu.js 通过将 js 转为特定的 language,利用 GPU 来执行,大大提高了执行性能和速度
    • pressure 前端实现 3D Touch
    • hammer 移动端手势库
    • AlloyFinger 腾讯出的手势库
    • lowdb LowDB 是一个本地 JSON 数据库,基于 Lodash 开发的
    • JSON-server 可以配合 LowDB 使用 快速搭建一个 REST API
    • lunr.js 是个用于浏览器的轻量级 JavaScript 全文搜索引擎,对于一些小型的博客、开发者文档或 Wiki 网站来说,完全可以通过它实现站内离线搜索
    • he 一个前端 encoder/decoder 库
    • grade 一个可以根据你的 图片 调整底色的插件
    • pretty-bytes 将字节转换成可以读的字符串,比如 1337 个字节,会显示成 1.34 KB
    • runkit 一个基于 node 的在线 playground
    • chart.xkcd 手绘风格的图表库
    • sketchviz 手绘风格流程图
    • pagemap Mini map for web pages 页面导航图
    • commonmark.js parser and renderer markdown
    • body-scroll-lock 解决滚动穿透问题
    • lodash 前端工具函数集合
    • dayjs 时间处理库,不过大部分情况下我还是用自己的封装的函数
    • lightgallery 图片预览组件
    • photoswipe 图片预览组件,支持移动端
    • darken 页面黑夜模式切换
    • mitt 轻量级 pub/sub
    • sanitize-html html 过滤库,防 xss
    • DOMPurify 比 sanitize-html 更轻量,建议一般业务用这个

    #Css && 动画

    • animate.css 最有名的动画效果库
    • magic.css css 动画效果库 类似 animate.css
    • popmotion 一个函数式声明前端动画库
    • NES.css 任天堂主题风格 css 库
    • particles.js 前端实现颗粒粒子的动画效果库,比较炫酷,但相对的也比较吃性能
    • PaperCSS 手绘风格感觉 css 库
    • rough 基于 Canvas 的手绘风格图形库
    • wired-elements 基于 rough.js 分装 button input radio 等组件。它的底层是 Web components
    • roughViz rough 风格的图表库 手绘风格的图表库
    • matter-js web 物理引擎
    • micron 通过在元素上绑定属性从而实现动画效果的库
    • direction-reveal 根据鼠标进入位置,展现从不同方向 展现 hover 效果
    • laxxx 滚动特效库 轻量级 压缩完 2kb
    • cssfx 优雅的 CSS 动画效果,开箱即用
    • zdog 3D engine 引擎
    • leonsans 酷炫的 字体 动画 geometric sans-serif typeface made with code
    • css-doodle A web component for drawing patterns with CSS 一个用于使用 CSS 绘制图案的 Web 组件

    #Vue

    #实践库

    • Jasonette 一个用 json 来构建 hybrid App 的框架
    • crate 一个 react 全栈练习(pc,mobile,rn,api) demo,适合入门拿来练手
    • react-in-patterns 一本开源教你如何写 react 的书
    • hocs react 相关 hoc 收集库

    #文档

    • vuepress vue 官方出品的文档工具
    • docsify 轻量级文档工具,但其是运行时编译的,所以 seo 不好
    • GitBook 除了编译慢没啥毛病
    • mdx jsx + markdown
    • docz
    • storybook

    #工具库

    • live-server 可以快速启一个本地 dev 服务 并且支持自动刷新的 http server
    • serve 快速起本地静态服务
    • picojs js 人脸识别库
    • es-checker 检查当前环境对 ES6 支持的情况。支持浏览器和 node.js
    • merge-images 图片合成,利用canvas能将几张图片合成一张
    • fabric.js 基于 canvas 创建交互式的图片编辑界面非常适合用来做图片合成类工作。
    • phaser 这是一个为桌面和移动浏览器开发 HTML5 游戏的快速开源框架。 你可以为 iOS、 Android 和不同的本地应用程序创建游戏。
    • purifycss 移除没使用到的 css
    • dropcss 同上
    • fast-cli 命令行测试下载上传速度
    • @pika/web 让你不需要在本地 webpack 中 import,直接在游览器里面运行 npm 包
    • pinyin 汉字拼音转换工具
    • JavaScript Obfuscator Tool js 代码混淆工具
    • tesseract 图像识别,它能识别图片中的文字,支持中文
    • gka 一款高效、高性能的帧动画生成工具。只需一行命令,快速图片优化、生成动画文件,支持效果预览。
    • recast 前端 ast 库
    • jscodeshift 将 js 内容解析成 AST 语法树,然后提供一些便利的操作接口,方便我们对各个节点进行更改
    • stats.js 前端性能监控 如 FPS、内存使用情况等
    • PapaParse 解析 csv excel
    • mddir 生成 markdown file/folder structure 目录结构 tree
    • imagemin 图片压缩库
    • inline-css css covert to inline style 在生成 email 格式 html 的时候特别有用
    • babel-plugin-try-catch-error-report 全局自动 catch 错误进行数据上报
    • StreamSaver.js 大文件下载,不用像 saveAs 那样先读到内存中再下载
    • mammoth.js Convert Word documents (.docx files) to HTML
    • npkill 列出所有 node_modules,并支持删除
    • strapi 开源的解决方案来创建、部署和管理自己的 API,通过图形化界面进行操作

    #Node

    #工具库

    • cheerio 用类 jQuery 语法处理 HTML
    • node-semver node 版本验证库
    • live-server 一个简单的 http server 带有 reload 功能
    • node-portfinder 一个端口嗅探工具
    • update-notifiernode 依赖升级提醒工具
    • fastscan node 敏感词库
    • hygen 快速方便的创建代码 可以命令行创建预设的 template
    • plop 同上,代码生成工具
    • ink 是一个 React 的命令行渲染器,命令行界面可以像写页面那么写了
    • dotenv 通过.env 设置环境部变量 vue-cli 也依赖它
    • patch-package 优雅的修改 node_modules 中的依赖库
    • Playwright 同 Puppeteer 团队出品,但区别是它支持 Chrome、Safari、Firefox、Edge
    • tree-cli node 根据目录结构生成 tree
    • tree-node-cli node 根据目录结构生成 tree
    • open node 打开浏览器

    #命令行

    • signale 一个 Node 的日志格式库,自带 16 个级别,可以定制颜色和 Emoji,可扩展的日志记录器
    • consola 优雅的命令行 console logger vuepress 也使用了它
    • chalk 命令行着色美化库
    • progress-estimator 命令行 progress bar 进度条模拟库
    • ora Elegant terminal spinner 命令行 loading
    • listr Terminal task 命令行任务列表
    • yargs 命令行参数解析
    • y18n yargs 基于 i18n 的一个包
    • commander.js 自动的解析命令和参数,合并多选项,处理短参,等等,功能强大,上手简单
    • Inquirer.js A collection of common interactive command line user interfaces. 命令行询问库
    • enquirer 命令行 prompt 询问库,写 cli 的时候很有用
    • Qoa 同上
    • cli-progress Terminal Progress Bar
    • cli-table tables for the CLI
    • node-notifier 在 NodeJS 环境中,可以很方便的唤起 notifier 通知

    #文件处理

    • rimraf 删除文件
    • globby 用于模式匹配目录文件
    • glob 文件查找
    • tiny-glob 文件查找
    • chokidar node 监听文件变化的库
    • fs-extra fs-extra 模块是系统 fs 模块的扩展,提供了更多便利的 API,并继承了 fs 模块的 API
    • execa 比 child_process 好用,返回 Promise
    • npm-run-all 一个 CLI 工具可以并行或者串行执行 script 指令
    • memfs memory-fs 的替代品,将文件放在内存中优化读写,webpack 依赖

    #调试

    #GraphQL

    • prisma 让前端也能快速的写出
    • Apollo GraphQL 是基于 GraphQL 的全栈解决方案集合。从后端到前端提供了对应的 lib 使得开发使用 GraphQL 更加的方便
    • dataloader 解决 Graphql 中的 N+1 查询问题

    #工具

    • high-speed-downloader 百度网盘不限速下载 支持 Windows 和 Mac
    • hyper 前端命令行
    • yapi 是一个可本地部署的、打通前后端及 QA 的、可视化的接口管理平台
    • sway 一个微软自己出的在线 ppt 很强大
    • Ascii Art Generator 在线生成 Ascii 图案
    • Winds 开源 RSS
    • JSUI 一个用来控制管理前端项目的客户端
    • docz 让你能快速写文档的一个库
    • hiper 性能统计分析工具
    • verdaccio 私有 npm
    • git-guide git 入门指南
    • git-tips git 进阶
    • bit 实现了项目之间的代码共享 可以自建私有
    • simpread 简悦 ( SimpRead ) 让你瞬间进入沉浸式阅读的扩展
    • mkcert 一键命令 让本地也支持 https
    • termtosvg 录制 命令操作转成 svg 基于 python
    • gh-polls 可以在 github issue 中添加投票
    • eruda 移动端调试工具
    • vConsole 也是一个移动端调试工具 腾讯出品
    • terminalizer 命令行录制工具 基于 node
    • badgen 快速构建和 shields 一样的 svg badge 但速度更快
    • readability 移除页面非正文部分 基于 jsdom
    • WeChatPlugin-MacOS 一款功能强大的 macOS 版微信小助手
    • puppeteer-recorder 一个 chrome 插件 能够根据你的操作 自动生成 puppeteer 相关代码
    • mdx-deck 用 markdown 编写演示文稿
    • code-surfer 基于 mdx-deck 的一个插件 让你更好的在文稿中展示 code
    • Progressive Tooling 前端性能优化工具集合
    • https://github.com/artf/grapesjs 可视化建站工具 不需要写代码就能写一个页面,前端再次再次要下岗了
    • image-charts 该服务通过 URL 接受参数,然后生成图表,以图片形式返回
    • eagle.js 一个用 vue 来制作 PPT 的库
    • Optimizely A/B Test
    • appadhoc 一个国内的 A/B Test 服务
    • glorious-demo 通过编写代码的方式构建一个命令行的演示例子
    • nginxconfig 可视化配置 nginx 提供了多个基础模板
    • bundlephobia 一个可以查看某个库的大小,并且分析它的依赖
    • jsperf 一个提供在线 test case 的网站,主要用来比较性能。可以比较如: forEach vs for 的性能
    • perflink 与 jsperf 类似的一个比较 js 性能的网站
    • algorithm-visualizer 算法代码可视化
    • An-English-Guide-for-Programmers 专为程序员编写的英语学习指南
    • Webhint 用于检查代码的可访问性、性能和安全的开源检查(Linting)工具
    • airtap 测试浏览器兼容性,可覆盖 800 多种浏览器
    • jsonstore 供免费,安全且基于 JSON 的云数据存储,自己玩的小项目神器
    • git-history 可视化查看一个文件的历史变化
    • x-spreadsheet 一个基于 Canvas 的 JS 电子表格库 excel
    • imgcook 阿里出品,一键通过设计稿生成代码
    • majestic jest 可视化
    • leon 你开源项目的 ai 个人助手
    • js-code-to-svg-flowchart 将代码逻辑用流程图的方式展现出来
    • xterm.js 一个 web terminal
    • pixelmatch diff 两张图片不一样的地方
    • readme-md-generator 一个命令行脚本帮你快速的创建一个 README
    • build-tracker 构建大小追踪 记录你多个版本构建后文件大小的变化
    • zan-proxy 本地调试线上环境的工具
    • mjml 一个让发 email 更简单的框架。定义了一套自己的语法,你用这套语法写邮件,然后编译成 HTML。
    • any-rule 正则大全
    • outline 一个免费开源的库,能让你快速搭建自己的 wiki

    #Webpack

    #移动端

    • fastclick 解决移动端一些点击问题

    #性能优化

    • workbox PWA 方案,Google 出品

    #请求处理

    • axios 目前最常见的请求库
    • got http 请求库 如果你觉得 request 太多的话 这是一个不错的选择
    • request 老牌请求库 –*whatwg-fetch** fetch 请求库
    • grpc-web 前端直连 gRPC 服务
    • node-fetch node 环境下轻量级 fetch 请求库
    • reqwest

    #工程

    • lerna monorepo 管理
    • lerna-changelog 为 lerna 项目自动生成 changelog
    • eslint JS 风格约束
    • eslint-config-airbnb airbnb 约束风格
    • xo 封装自 eslint
    • prettier 更主观的风格自动修改
    • yeoman-generator 脚手架工具
    • serve 本地静态服务器
    • np npm publish 辅助,自动 push、打 tag、升版本等
    • lint-staged eslint 提速,只 lint 提交的代码
    • coveralls 覆盖率
    • husky 添加 git hooks
    • cross-env 跨平台的环境变量声明
    • nvm 管理 node 版本
    • concurrently 在 npm scripts 里并行执行命令
    • @zeit/ncc 打包为 npm 包为一个文件
    • npm-check 检测依赖升级情况,我会和 yarn upgrade-interactive 配合着用,主要用来检测冗余依赖
    • cpx 复制,支持 glob,并且可以 watch
    • onchange 监听文件变动然后做一些事
    • tasksfile 在 node 中执行 script 脚本

    #Mac

    • get-plain-text 能清除剪贴板里的格式 很实用
    • IINA mac 平台感觉免费最好的播放器 强推
    • magnet 分屏管理
    • Xnip 方便好用的截图工具-支持截长图
    • Spectacle 窗口管理工具
    • vanilla 顶栏图标管理工具
    • Dozer 一个开源的顶栏管理
    • 腾讯电脑管家 反正我用下来好觉得蛮好用的
    • mos 鼠标平滑滚动软件,很好用。免费开源
    • sequel pro mysql 客户端 好用
    • Microsoft Remote Desktop Beta Mac 远程登录 Windows 调试神器
    • pap.er 专为 Mac 设计的壁纸应用
    • The Unarchive Mac 目前感觉最好用的免费解压软件
    • Tickeys 让你用 Mac 键盘也能打出机械键盘的感觉
    • Beaker Browser P2P 开源浏览器 支持点对点发布文件,成为了文件传输工具,支持 DAT 对等协议
    • Gifski 视频转 gif 工具
    • more 更多优秀的 mac app 介绍
    • Motrix 支持 HTTP、FTP、BT、磁力链、百度网盘的下载工具
    • iPic这个应用可以让你方便地上传图片到各种图床
    • Image2Icon
    • hidden 是用来帮助你隐藏 macOS 菜单栏上那些不常用的应用图标

    #录制

    • licecap gif 录制,简洁好用,之前都用这个录制
    • kap 现在都用这个录制 gif,还支持导出 mp4,录制的 fps 很高
    • KeyCastr 按键显示,录制的时候显示你的按键

    #Chrome 拓展

    • Tampermonkey 油猴 神器
    • 扩展管理器 轻松管理扩展,就不用担心安装太多扩展了
    • visbug 它可以帮助你改变 css,移动元素等等一系类强大的功能,页面调试神器。当然有些时候还是 DevTools 更好用
    • refined-github 优化 github 默认功能和样式的 chrome 插件
    • ADB chrome 真机调试安卓神器
    • Adblock Plus 免费广告拦截程序 这个应该不用说了,装机必备
    • Axure RP Extension 看原型必备
    • JSON Formatter JSON 格式化 程序员必备
    • Lighthouse 谷歌出品,检查网页综合性能评分,分析不足
    • 二维码(QR 码)生成器 手机扫码神器
    • Octotree github 上看代码必备神器
    • OctoLinker 能在 github 上看代码的时候 快速链接跳转到依赖的库
    • The Great Suspender chrome 太吃内存了,当页面开的很多时候会很卡,它就完美的解决了这个问题。它将几分钟没浏览过的页面都挂载了,当你想看是再重新加载
    • WEB 前端助手 支持 JSON 格式化、二维码生成与解码、代码压缩、Markdown 与 HTML 互转、网页滚动截屏、正则表达式、时间转换工具、JSON 比对工具等
    • 掘金 目前我默认新开 tab 的默认页,可以刷刷新的文章或者项目,还不错。
    • 沙拉查词 划词翻译插件
    • npmhub在 README 下方显示 npm 依赖信息

    #VS Code

    • Import Cost 查看你引入的依赖模块大小
    • Auto Close Tag 自动补全 html 标签,如输入<a>将自动补全</a>
    • Auto Rename Tag 自动重命名 html 标签,如修改<a>为<b>,将自动修改结尾标签</a>为</b>
    • polacode 生产代码图片快照插件
    • vscode-leetcode 一个能让你在 vscode 中刷 LeetCode 的插件 算一个划水神器吧
    • vscode-icons VS Code 必备吧,为文件添加炫图标
    • CodeSnap 生产代码截图

    #主题

    官方主题页 可以选择自己喜欢的主题 one-monokai 我用的是这个主题,很多年了

    #字体

    #编辑器和 Terminal

    #zsh 插件

    #开发常用软件

    #有趣

    • the-bread-code 使用程序员的思维制作面包 ,比如制作中使用 A/B test, 来比较那种做法更好。
    • build-your-own-x 教你用各种语言实现 Bot Database Neural Network
    • **javascript-algorithms ** 教你用前端知识认识各种算法
    • not-paid 如果你给人做网站,交过去以后对方没有付款,那么这个 JS 会把网站的透明度一天调低一点,直到看不见
    • nsfwjs 前端图片鉴黄,基于 Tensorflow
    • elevator.js 我很喜欢的一个库,让一个 back-to-top 的效果有了一种坐复古电梯的感觉
    • app-ideas 很多年轻人苦于缺少练手的项目,这个项目收集了不少点子,每个点子都有明确的目标和复杂资源。
    • WebGL-Fluid-Simulation 很酷的 WebGL 交互
    • react-kawaii 一个非常可爱的 React 卡通人脸库,很有意思
    • chart-race-react 图表竞赛 长条图赛跑动画 在微博或者 b 站这种类型视频很火
    • 98.css windows 98 主题分格 css

     

    https://panjiachen.github.io/awesome-bookmarks/