├── .gitignore ├── README.md ├── TAGS.md ├── assets ├── dot.png ├── new.png └── rss.gif ├── data ├── links.json ├── rss.json └── tags.json ├── details ├── JavaScript-Weekly.md ├── Node-Weekly.md ├── tags │ ├── audio-video.md │ ├── browser.md │ ├── canvas-image.md │ ├── css.md │ ├── dev-game.md │ ├── dev-mobile.md │ ├── front-end-advanced.md │ ├── git-svn.md │ ├── html.md │ ├── javascript.md │ ├── job-interview.md │ ├── miniprogram.md │ ├── nodejs.md │ ├── oop.md │ ├── optimization.md │ ├── other.md │ ├── pack-build.md │ ├── react.md │ ├── server.md │ ├── typescript.md │ └── vue.md ├── 凹凸实验室.md ├── 前端之巅.md ├── 前端之神.md ├── 前端大全.md ├── 前端技术优选.md ├── 前端早读课.md ├── 前端里.md ├── 张鑫旭-鑫空间-鑫生活.md ├── 淘系前端团队.md ├── 程序员成长指北.md └── 阮一峰的网络日志.md ├── server ├── app.js ├── fetch.js ├── once.js ├── package.json ├── update.js ├── utils.js └── writemd.js ├── site ├── .babelrc ├── .editorconfig ├── .eslintignore ├── .eslintrc.js ├── .gitignore ├── .postcssrc.js ├── .yarnrc ├── README.md ├── api │ └── index.js ├── build │ ├── build.js │ ├── check-versions.js │ ├── createFiles.js │ ├── data.js │ ├── logo.png │ ├── template-parameters.js │ ├── utils.js │ ├── vue-loader.conf.js │ ├── webpack.base.conf.js │ ├── webpack.dev.conf.js │ └── webpack.prod.conf.js ├── config │ ├── dev.env.js │ ├── index.js │ └── prod.env.js ├── index.html ├── package.json ├── src │ ├── App.vue │ ├── assets │ │ └── logo.png │ ├── components │ │ └── Index.vue │ ├── main.js │ └── router │ │ └── index.js ├── static │ └── .gitkeep └── yarn.lock ├── templates ├── DETAILS.md ├── README.md └── TAGS.md └── vercel.json /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .AppleDouble 3 | .LSOverride 4 | .svn 5 | 6 | ._* 7 | 8 | .Spotlight-V100 9 | .Trashes 10 | 11 | Thumbs.db 12 | ehthumbs.db 13 | 14 | Desktop.ini 15 | 16 | $RECYCLE.BIN/ 17 | 18 | .idea 19 | 20 | *.sublime-* 21 | 22 | .vscode 23 | 24 | node_modules 25 | *.js.map 26 | package-lock.json 27 | .vercel 28 | server/.env -------------------------------------------------------------------------------- /assets/dot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hzhuhao/web-front-end-rss/02be80e2bda94d5826acd38cb68a712e921b0dc3/assets/dot.png -------------------------------------------------------------------------------- /assets/new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hzhuhao/web-front-end-rss/02be80e2bda94d5826acd38cb68a712e921b0dc3/assets/new.png -------------------------------------------------------------------------------- /assets/rss.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hzhuhao/web-front-end-rss/02be80e2bda94d5826acd38cb68a712e921b0dc3/assets/rss.gif -------------------------------------------------------------------------------- /data/rss.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "title": "Node-Weekly", 4 | "rss": "https://cprss.s3.amazonaws.com/nodeweekly.com.xml" 5 | }, 6 | { 7 | "title": "JavaScript-Weekly", 8 | "rss": "https://cprss.s3.amazonaws.com/javascriptweekly.com.xml" 9 | }, 10 | { 11 | "id": "FeZaoDuKe", 12 | "title": "前端早读课", 13 | "rss": [ 14 | "https://posts.careerengine.us/author/5d1213cb25dbe17eab761cb8/rss", 15 | "https://rsshub.app/wechat/wemp/5a7a4f48-a16c-450e-aff7-f78112ab2801", 16 | "https://rsshub.app/wechat/ershicimi/5760" 17 | ] 18 | }, 19 | { 20 | "id": "FrontDev", 21 | "title": "前端大全", 22 | "rss": [ 23 | "https://posts.careerengine.us/author/594e6fbdea0d253f1f63cc9e/rss", 24 | "https://rsshub.app/wechat/wemp/b68c584d-dba9-431d-8575-5138cff4a815", 25 | "https://rsshub.app/wechat/ershicimi/65" 26 | ] 27 | }, 28 | { 29 | "id": "frontshow", 30 | "title": "前端之巅", 31 | "rss": [ 32 | "https://posts.careerengine.us/author/5c5fac76719f0119cdd6f031/rss", 33 | "https://rsshub.app/wechat/wemp/f7d61496-c89b-466d-a272-8e62d1c459dd", 34 | "https://rsshub.app/wechat/ershicimi/154" 35 | ] 36 | }, 37 | { 38 | "id": "gh_086869a8f05b", 39 | "title": "前端之神", 40 | "rss": "https://rsshub.app/wechat/csm/huxiu_com" 41 | }, 42 | { 43 | "id": "iwebfe", 44 | "title": "前端技术优选", 45 | "rss": [ 46 | "https://rsshub.app/wechat/wemp/0ae31766-8e50-45be-9a7d-5d5bbdc03165" 47 | ] 48 | }, 49 | { 50 | "id": "coder_growth", 51 | "title": "程序员成长指北", 52 | "rss": [ 53 | "https://rsshub.app/wechat/wemp/de57e5f9-30db-45d1-8597-0ec472f45aaf" 54 | ] 55 | }, 56 | { 57 | "id": "taobaofed", 58 | "title": "淘系前端团队", 59 | "rss": "https://fed.taobao.org/atom.xml" 60 | }, 61 | { 62 | "title": "张鑫旭-鑫空间-鑫生活", 63 | "rss": "https://www.zhangxinxu.com/wordpress/feed/" 64 | }, 65 | { 66 | "title": "阮一峰的网络日志", 67 | "rss": "http://www.ruanyifeng.com/blog/atom.xml" 68 | }, 69 | { 70 | "title": "前端里", 71 | "rss": "http://www.yyyweb.com/feed" 72 | }, 73 | { 74 | "id": "AOTULabs", 75 | "title": "凹凸实验室", 76 | "rss": "https://aotu.io/atom.xml" 77 | } 78 | ] -------------------------------------------------------------------------------- /data/tags.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "tag": "React", 4 | "filename": "react", 5 | "keywords": "React|Rax|Nerv|Redux|useState|useEffect|useCallback|useRef|useMemo|Hooks?|Suspense" 6 | }, 7 | { 8 | "tag": "Vue", 9 | "filename": "vue", 10 | "keywords": "Vue|ElementUI|Vant" 11 | }, 12 | { 13 | "tag": "TypeScript", 14 | "filename": "typescript", 15 | "keywords": "TypeScript" 16 | }, 17 | { 18 | "tag": "Webpack、NPM、构建相关", 19 | "filename": "pack-build", 20 | "keywords": "Webpack|Lerna|Rollup|Vite|NPM|NPX|Yarn|Gulp|Grunt|Babel|ESLint|TSLint|Polyfill|Jenkins|构建|monorepo" 21 | }, 22 | { 23 | "tag": "NodeJS", 24 | "filename": "nodejs", 25 | "keywords": "Node|Node.?js|Deno|Express|Koa|egg.?js|pandora.?js|Electron|Puppeteer|V8" 26 | }, 27 | { 28 | "tag": "小程序", 29 | "filename": "miniprogram", 30 | "keywords": "小程序|Taro|MPVue|Wepy|Chameleon" 31 | }, 32 | { 33 | "tag": "移动开发、Flutter相关", 34 | "filename": "dev-mobile", 35 | "keywords": "Flutter|PWA|移动开发" 36 | }, 37 | { 38 | "tag": "游戏开发", 39 | "filename": "dev-game", 40 | "keywords": "游戏|Three.?js|Create.?js|Matter.?js" 41 | }, 42 | { 43 | "tag": "JavaScript", 44 | "filename": "javascript", 45 | "keywords": "JavaScript|ECMAScript|JS|ES6|ES7|ES8|ES9|ES10|Promise|document|await|async|decorator|module|import|catch|typeof|console|setInterval|setTimeout|Worker|Object|fetch|Map|Set|reduce|this|bind|DataTransfer|Array|ArrayBuffer|Component|DOM|H5|HTML5|Proxy|Reflect|组件|正则|数组|事件|深拷贝|数据代理|变量|函数式|声明式|异步|表单|滚动|scroll|防抖|适配|路由|模块化" 46 | }, 47 | { 48 | "tag": "CSS", 49 | "filename": "css", 50 | "keywords": "CSS|Sass|Less|scale|transform|transition|animation|border|background|font-weight|font-face|flex|display|position|iconfont|居中|动画|特效|布局" 51 | }, 52 | { 53 | "tag": "HTML", 54 | "filename": "html", 55 | "keywords": "HTML|标签|meta" 56 | }, 57 | { 58 | "tag": "Canvas、SVG、图像", 59 | "filename": "canvas-image", 60 | "keywords": "Canvas|SVG|WebGL|3D|PNG|WebP|RGB|GUI" 61 | }, 62 | { 63 | "tag": "音视频相关", 64 | "filename": "audio-video", 65 | "keywords": "WebVR|WebRTC|Video|Audio|图像|音频|视频|直播|摄像头|播放器" 66 | }, 67 | { 68 | "tag": "性能优化", 69 | "filename": "optimization", 70 | "keywords": "性能|优化|加载|SEO|Hints|Prefetch|Prerender|Preload|Lighthouse" 71 | }, 72 | { 73 | "tag": "浏览器相关", 74 | "filename": "browser", 75 | "keywords": "Chrome|Chromium|IE|Firefox|Safari|Webkit|Edge|WebSocket|localStorage|sessionStorage|navigator|GET|POST|CORS|CORB|URL|浏览器|调试|缓存|跨域|请求|安全|状态码|重绘|重排|渲染" 76 | }, 77 | { 78 | "tag": "前端进阶相关", 79 | "filename": "front-end-advanced", 80 | "keywords": "AST|GPU|WebAssembly|Vim|HTTP|算法|全栈|工程化|可视化|微前端|源码|原理|前端架构|大前端|低代码|编辑器" 81 | }, 82 | { 83 | "tag": "服务端相关", 84 | "filename": "server", 85 | "keywords": "Nginx|Docker|Server|GraphQL|REST|gRPC|Rust|Java|Python|PHP|Golang|Django|SSR|SSG|MongoDB|JWT|SSH|rsync|Bash|Tmux|命令|数据库" 86 | }, 87 | { 88 | "tag": "Git、SVN", 89 | "filename": "git-svn", 90 | "keywords": "Git|SVN" 91 | }, 92 | { 93 | "tag": "招聘面试", 94 | "filename": "job-interview", 95 | "keywords": "招聘|招人|面试|笔试|内推|Offer" 96 | }, 97 | { 98 | "tag": "面向对象❤️", 99 | "filename": "oop", 100 | "keywords": "面向对象:" 101 | }, 102 | { 103 | "tag": "其它", 104 | "filename": "other", 105 | "keywords": "" 106 | } 107 | ] 108 | -------------------------------------------------------------------------------- /details/JavaScript-Weekly.md: -------------------------------------------------------------------------------- 1 | :alarm_clock: 更新时间: 2022-06-25 06:03:23。[文章来源](/README.md)、[文章分类](/TAGS.md) 2 | 3 | ## JavaScript-Weekly 4 | 5 | 6 | 7 | 8 | - [2022-06-24-What's-new-in-ECMAScript-2022?](https://javascriptweekly.com/issues/595) 9 | - [2022-06-17-AbortController,-your-newest-friend](https://javascriptweekly.com/issues/594) 10 | - [2022-06-10-Mathematics-is-the-music-of-reason.](https://javascriptweekly.com/issues/593) 11 | - [2022-06-03-Sure,-you-can-make-games-in-Word-with-JavaScript-now.](https://javascriptweekly.com/issues/592) 12 | - [2022-05-27-Airbnb's-uncommon-route-to-faster-JS-builds](https://javascriptweekly.com/issues/591) 13 | - [2022-05-20-Getting-animated](https://javascriptweekly.com/issues/590) 14 | - [2022-05-13-19-hours-of-D3.js??](https://javascriptweekly.com/issues/589) 15 | - [2022-05-06-A-2022-take-on-TodoMVC-in-plain-JS](https://javascriptweekly.com/issues/588) 16 | - [2022-04-29-Let's-build-a-JavaScript-bundler](https://javascriptweekly.com/issues/587) 17 | - [2022-04-22-Node.js-18,-WebAssembly-2.0,-and-Ember-4.3](https://javascriptweekly.com/issues/586) 18 | - [2022-04-15-On-function-composition-in-JavaScript](https://javascriptweekly.com/issues/585) 19 | - [2022-04-08-Format-JavaScript-as-the-Romans-do?](https://javascriptweekly.com/issues/584) 20 | - [2022-04-01-Time-to-get-decorating](https://javascriptweekly.com/issues/583) 21 | - [2022-03-25-React-18-due-any-day-now..](https://javascriptweekly.com/issues/582) 22 | - [2022-03-18-Getting-creative-with-JavaScript](https://javascriptweekly.com/issues/581) 23 | - [2022-03-11-Bringing-static-type-syntax-into-JavaScript-itself](https://javascriptweekly.com/issues/580) 24 | - [2022-03-04-TypeScript-2.6-released](https://javascriptweekly.com/issues/579) 25 | - [2022-02-25-How-to-read-the-spec-behind-JavaScript](https://javascriptweekly.com/issues/578) 26 | - [2022-02-18-The-State-of-JS-results-are-in](https://javascriptweekly.com/issues/577) 27 | - [2022-02-11-The-seven-figure-JavaScript-app](https://javascriptweekly.com/issues/576) 28 | - [2022-02-04-Get-decorating-with-Babel-7.17.0](https://javascriptweekly.com/issues/575) 29 | - [2022-01-28-Etsy-moved-from-React-to-Preact](https://javascriptweekly.com/issues/574) 30 | - [2022-01-21-NaNNaNNaNNaN-Batman](https://javascriptweekly.com/issues/573) 31 | - [2022-01-14-Parcel.js-2.2-and-Eleventy-1.0](https://javascriptweekly.com/issues/572) 32 | - [2022-01-07-The-rising-stars-of-JS-in-2021](https://javascriptweekly.com/issues/571) 33 | - [2021-12-24-The-JavaScript-2021-megamix](https://javascriptweekly.com/issues/570) 34 | - [2021-12-17-Array.prototype.groupBy](https://javascriptweekly.com/issues/569) 35 | - [2021-12-10-Cutting-down-on-JavaScript](https://javascriptweekly.com/issues/568) 36 | - [2021-12-03-Happy-26th-birthday-to-JavaScript](https://javascriptweekly.com/issues/567) 37 | -------------------------------------------------------------------------------- /details/Node-Weekly.md: -------------------------------------------------------------------------------- 1 | :alarm_clock: 更新时间: 2022-06-24 12:03:44。[文章来源](/README.md)、[文章分类](/TAGS.md) 2 | 3 | ## Node-Weekly 4 | 5 | 6 | 7 | 8 | - [2022-06-23-Node.js-in-the-stream.](https://nodeweekly.com/issues/443) 9 | - [2022-06-16-Node-16-to-duck-out-early-in-September-2023](https://nodeweekly.com/issues/442) 10 | - [2022-06-09-A-big-week-for-Fastify](https://nodeweekly.com/issues/441) 11 | - [2022-06-02-util.parseArgs-arrives-in-Node-18.3](https://nodeweekly.com/issues/440) 12 | - [2022-05-26-TypeScript-4.7-supports-ES-modules-in-Node.js](https://nodeweekly.com/issues/439) 13 | - [2022-05-19-Node-16-LTS-now-on-AWS-Lambda](https://nodeweekly.com/issues/438) 14 | - [2022-05-12-The-one-with-the-npm-security-stories](https://nodeweekly.com/issues/437) 15 | - [2022-05-05-Node's-new-CLI-test-runner](https://nodeweekly.com/issues/436) 16 | - [2022-04-28-Now-Node-16-gets-the-Fetch-API-too](https://nodeweekly.com/issues/435) 17 | - [2022-04-21-Node.js-18-released](https://nodeweekly.com/issues/434) 18 | - [2022-04-14-Wild-wild-property-access](https://nodeweekly.com/issues/433) 19 | - [2022-04-07-The-one-with-the-epic-code-and-tools-section](https://nodeweekly.com/issues/432) 20 | - [2022-03-31-A-roundup-of-what's-new-in-Node.js-core](https://nodeweekly.com/issues/431) 21 | - [2022-03-24-A-collection-of-proficient-Node.js-dev-practices](https://nodeweekly.com/issues/430) 22 | - [2022-03-17-Damage-caused-by-package-based-protest](https://nodeweekly.com/issues/429) 23 | - [2022-03-10-What-hides-in-your-node_modules?](https://nodeweekly.com/issues/428) 24 | - [2022-03-03-Using-'execa'-to-run-other-processes](https://nodeweekly.com/issues/427) 25 | - [2022-02-24-Node-gains-HTTPS-module-import-support](https://nodeweekly.com/issues/426) 26 | - [2022-02-17-Express-5-now-in-beta](https://nodeweekly.com/issues/425) 27 | - [2022-02-10-Writing-an-SD-card-driver-in-TypeScript](https://nodeweekly.com/issues/424) 28 | - [2022-02-03-That's-so-fetch](https://nodeweekly.com/issues/423) 29 | - [2022-01-27-Doing-the-opposite-of-Jim-Cramer-with-Node](https://nodeweekly.com/issues/422) 30 | - [2022-01-20-Eleventy-1.0](https://nodeweekly.com/issues/421) 31 | - [2022-01-13-📦-Broken-packages](https://nodeweekly.com/issues/420) 32 | - [2021-12-23-Looking-back-at-Node.js-in-2021](https://nodeweekly.com/issues/419) 33 | - [2021-12-16-Shell-scripting-in-Node-with-zx](https://nodeweekly.com/issues/418) 34 | - [2021-12-09-Security](https://nodeweekly.com/issues/417) 35 | - [2021-12-02-One-dev's-journey-from-Node-to-Rust](https://nodeweekly.com/issues/416) 36 | -------------------------------------------------------------------------------- /details/tags/audio-video.md: -------------------------------------------------------------------------------- 1 | :alarm_clock: 更新时间: 2022-06-30 08:00:50。[文章来源](/README.md)、[文章分类](/TAGS.md) 2 | 3 | ## 音视频相关 4 | 5 | 6 | > 关键字:`WebVR`、`WebRTC`、`Video`、`Audio`、`图像`、`音频`、`视频`、`直播`、`摄像头`、`播放器` 7 | 8 | 9 | 10 | - [2022-06-13-【直播】和Shopee前端技术专家聊聊前端高性能计算](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651254947&idx=2&sn=e75e021c842308e1f0845b514a2475e7&chksm=bd4929278a3ea0316e4ee1df61d8083904fb4d927783d009543208fdf5e61653df3e7a79ab53#rd) 11 | - [2022-05-24-【招聘】抖音直播大前端团队招前端工程师、前端专家](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651254419&idx=2&sn=d6979e56a189fbec7311cb439578374c&chksm=bd4937178a3ebe01a221d3a76509fe637018e091406db9ac6a4b043984ad11ef314948d72599#rd) 12 | - [2022-03-26-【第2568期】Web端短视频编辑器的设计与实现---像做PPT一样做视频](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651253441&idx=1&sn=6fcc8a93d912b1c559ac6a999f604745&chksm=bd4933458a3eba533acafa511d46610d439e62b3df5abcdb092bbe585693f0cc68e1eebf96d6#rd) 13 | - [2022-01-08-【活动】SEE-Conf-2022,9点直播间见!](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651252080&idx=2&sn=3d86fe867c295107c5ec78bb4d657939&chksm=bd493cf48a3eb5e29950ef4d47a1c73a4dca019ff613e827cf81802cbf84ca5294ebbe50e223#rd) 14 | - [2021-06-03-Why-WebRTC|前世今生](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651246562&idx=2&sn=ac7b3badf5f30f194ae8b98cf4bf46ef&chksm=bd4916668a3e9f70c6f61f50866faa0e942fb154f17fdd4cb106c611d4a01aa8a72fc80cc9bc&scene=27#wechat_redirect) 15 | - [2021-04-29-【图书】WebRTC技术详解](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651245783&idx=2&sn=759c93d7784e80bb338886f9f15a2ef8&chksm=bd4915538a3e9c45249c8e8b1193ca77f49cbfacc0987b0107a84754e0008d04ebf32a6455e0&scene=27#wechat_redirect) 16 | - [2021-04-02-【第2244期】百家号在线视频编辑器的技术演进](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651244922&idx=1&sn=58e737a8485e00107e02d2327dbf08b9&chksm=bd4910fe8a3e99e8a8186b09ea73a6073229c62526d241db27e0bf8558d549c52e77877e0130&scene=27#wechat_redirect) 17 | - [2021-02-07-【视频】剖析三个常见的API调试工具](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651243986&idx=2&sn=8beb3dbb7464cf582de77deec82caaa0&chksm=bd491c568a3e9540a331d7318dbcbbaa0f9240869c1e5ac7b669bb30927ee25950bec32c8b42&scene=27#wechat_redirect) 18 | - [2021-02-05-【视频】玉伯心中的好团队](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651243918&idx=2&sn=21b630aefdedbcdf60166dcc2ae48e75&chksm=bd491c0a8a3e951c1de191a8c9238f5654d7a0f9a6036ab3a58a438de418c64a34278784bb11&scene=27#wechat_redirect) 19 | - [2021-01-27-【直播】Apache-ECharts-5-震撼发布:五大模块,十五项新特性全面升级!](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651243693&idx=2&sn=903b9a69fe1e78dac509cbdbd25da780&chksm=bd491d298a3e943ffaf02bebed54566a50569e9d4ffe22fa9dab1a8b0654bb15e4f9700b97cb&scene=27#wechat_redirect) 20 | - [2021-01-16-【第2178期】我在阿里云做前端智能化(Dumbo)--图像分析](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651243304&idx=1&sn=2087a5b4eb9326ab30ac47ce4dd78bc5&chksm=bd491aac8a3e93ba0dd31548503befcb18c21920629b21e68d9648c48161e2461f802e41236a&scene=27#wechat_redirect) 21 | - [2020-10-15-【招聘】DAU破6亿,快上车!抖音直播招中高级前端开发工程师](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651240199&idx=2&sn=a9668989d061e67c3d3a26d948199c44&chksm=bd496e838a3ee79504b6c5fe737c171ff34864823176eb2c1162419e9e62d488fffbfb9b5a92&scene=27#wechat_redirect) 22 | - [2020-08-28-【第2047期】如何使用AVIF:新一代图像压缩格式](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651239205&idx=1&sn=4cc1c52ccf5c51b1e9245e3edab3c403&chksm=bd496aa18a3ee3b771094575bd80bb73c7ec8ec9a5e6129708c196becd036be67e34b38f4a60&scene=27#wechat_redirect) 23 | - [2020-08-15-【第2034期】全民K歌推流直播Web实践](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651238950&idx=1&sn=c6c836003a6b3cd97adf922c02844381&chksm=bd496ba28a3ee2b4b987aa7bf3e50291efcfba63034a94f722fc2c965ac798795d0580ff7e38&scene=27#wechat_redirect) 24 | - [2020-07-28-【第2016期】WXInlinePlayer:高性能WASM播放器实现](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651238432&idx=1&sn=11ecaca4bf5e1024ccab7f6481b4c412&chksm=bd4969a48a3ee0b27c79a888019fac534d6fc50466302ae793d4de1bfa73a922a5191a2f7ec0&scene=27#wechat_redirect) 25 | - [2020-07-21-【第2009期】实现-Bilibili-视频播放Chrome-媒体控制效果](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651238215&idx=1&sn=8737856499f6f65f389a119d595727e5&chksm=bd4976c38a3effd5ec9e58be8e0ebcc8a635e6ffbb5b2724e6235c2b217b701f4b81b67be65d&scene=27#wechat_redirect) 26 | - [2020-05-16-【视频】@Winter:聊聊架构---MVVM模式](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651236622&idx=2&sn=a6ed30789479d8f44a627ae7380b9b72&chksm=bd49708a8a3ef99c0a7303255fd4410f605085ce9bd7dfa075f7d4c6f82eebb2aa623ddcbf76&scene=27#wechat_redirect) 27 | - [2020-03-05-【直播】淘系中后台负责人教你快速搭建企业微前端架构](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651235867&idx=4&sn=eb7bbb4f14973a7082e330a03f12f31f&chksm=bd497f9f8a3ef689295e777444cc145ec6725b80d4254e6870adcd11055bc936e86e50a47385&scene=27#wechat_redirect) 28 | - [2020-01-18-【视频】蚂蚁@有知:标准微前端架构在蚂蚁的落地实践](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651235584&idx=2&sn=16579589083a19fd467561322159fe0f&chksm=bd497c848a3ef592f3456b41130f9345c71a440bd9ed160113473c0f463a04a5dfde06fc5630&scene=27#wechat_redirect) 29 | - [2020-01-04-【直播】第三届SEEConf蚂蚁金服体验科技大会](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651235398&idx=2&sn=a50c541e3e36c83672429d231be07065&chksm=bd497dc28a3ef4d479524d0e4c0c4b827a313fc1af2c499ea36e735421512fdf4ccfe6891ce8&scene=27#wechat_redirect) 30 | - [2019-12-28-【第1819期】Web-视频播放前前后后](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651235349&idx=1&sn=05431b4121c77e2ea82524f3c19bd0fc&chksm=bd497d918a3ef487afc805cb83487deb824a48ce4bb9f1830df91c616a7c7eeafd8fc2a2a113&scene=27#wechat_redirect) 31 | - [2019-09-30-【视频】360@月影:你不知道的GPU-—-前端、图形系统与数据可视化](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651234150&idx=3&sn=59f7d08f587f0f227e0f3a060fed2199&chksm=bd4946e28a3ecff49f429caac5b16961c0e9604960dcb6a65249cc61b350a3c730d52a05d3ca&scene=27#wechat_redirect) 32 | - [2019-08-25-【PPT】基于WebAssembly的浏览器端视音频处理](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651233554&idx=1&sn=3cdb61a8fddc636e72816fddf417f28d&chksm=bd4944968a3ecd80efd32ef41b9c79f58e6f53530f7a837e1833dac8806b45941a5d7766c5d9&scene=27#wechat_redirect) 33 | - [2019-08-04-【招聘】深圳腾讯TGideas和腾讯视频招聘前端](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651233220&idx=2&sn=f2d81fa8ef43fb252d83f26dbe09c44f&chksm=bd4942408a3ecb5615c1ccbe9900f422b3762d1ded1ef21cf3c74fb5044c38c8420b43829f06#rd) 34 | - [2019-07-20-【第1674期】-花椒前端基于WebAssembly-的H.265播放器研发](https://mp.weixin.qq.com/s/YfuMDgMKT8pzGH175d867A#rd) 35 | - [2019-07-20-【招聘】花椒直播招高级前端工程师/实习生](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651233097&idx=2&sn=5d999500cfc34737e08ab70c31b0bd6c&chksm=bd4942cd8a3ecbdb9803100a43c73e1d93771ed1e961f51f6c021bae6502164a96bfd4ec084c&scene=27#wechat_redirect) 36 | - [2019-07-20-【第1674期】-花椒前端基于WebAssembly-的H.265播放器研发](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651233097&idx=1&sn=d1c229f51cec8ee8079f88035efa3f11&chksm=bd4942cd8a3ecbdb72b3e57888bda7bf8062ceb45408cc3867822d05ca166fc430051be33037&scene=27#wechat_redirect) 37 | - [2019-07-19-【第1673期】-图像优化自动化实用指南](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651233089&idx=1&sn=417830af15edcbe44de8e5af7ceb00d1&chksm=bd4942c58a3ecbd39a05feb6fbff36ceb7f8f41cc0c9185f204ff45bac7eb00643cba6a98a2a&scene=27#wechat_redirect) 38 | - [2019-07-12-【视频】几行代码让页面自动刷新](https://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651233030&idx=2&sn=791db48e1fc4d65b4d8a919aefb7bc0f#rd) 39 | - [2019-07-10-【视频】浏览器全球市场份额的十年变迁](https://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651233013&idx=2&sn=3069aa22721249d9767381908af0b777#rd) 40 | - [2019-06-21-【视频】探索Web编程的另一种形态](https://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651232632&idx=2&sn=dd0bf6cf6a5515fd2506e1d02f76277a#rd) 41 | - [2019-04-08-【开源】知乎视频播放器-Griffith-介绍](https://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651231964&idx=2&sn=d111f603bfe7a7eaafc88676a5094bc0#rd) 42 | - [2019-03-03-【招聘】腾讯IVWEB前端团队-互动视频招前端/2020前端实习生](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651231595&idx=2&sn=6e1b30e5e9cb5895ffc9034d22b0837d#wechat_redirect) 43 | - [2019-01-25-【招聘】阿里云视频云团队招聘高级前端开发工程师(P6)、前端技术专家(P7)](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651231270&idx=2&sn=2ef53bbd8a1237c2d57b1b2dcfa33132#wechat_redirect) 44 | - [2019-01-10-第二届-SEE-Conf-2019-精彩回顾(附-PPT-及视频)](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651230950&idx=3&sn=ea51abc76cc8d36f1a6d75b499e32422#wechat_redirect) 45 | - [2018-12-14-【视频】应用多端统一的实践](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651230700&idx=2&sn=21e0640b1c33e7722a3f904538ab1533#wechat_redirect) 46 | - [2018-12-11-【视频】让自己的-Web-应用具备较高的可访问性](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651230673&idx=2&sn=9993e9887b032a6c489fb69fa66ad21b#wechat_redirect) 47 | - [2021-06-23-设计灵感:12-组收音机播放器-APP-设计](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651578080&idx=4&sn=6ad38acf4eeb58f2b95a05acee38820a&chksm=80250921b75280377a1f651b5c7e8a6adaf86ae4422fac7e599440b73b5dc7db45e81ff8393a&scene=27#wechat_redirect) 48 | - [2021-06-20-设计灵感:12组音乐播放器界面设计](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651578041&idx=4&sn=b1d15fd8e70a6f657ebe1df598c83a50&chksm=80250978b752806e60a85b39a6b0bc9fd75fd182a9043a08036fa50554ef51e4ffb4f2a7aee2&scene=27#wechat_redirect) 49 | - [2021-05-23-设计灵感-:-12款暗色系音乐播放器页面](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651576264&idx=4&sn=0c305619d86aea8dfa59d608d15a2173&chksm=80250009b752891f7dbcceb3ca24d1ac3c3e654f21d152d640b8e07245a1ff6d2ee2fcc05dd6&scene=27#wechat_redirect) 50 | - [2021-03-07-使用-mask-实现视频弹幕人物遮罩过滤](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651572138&idx=1&sn=0ab9f6f024ba3bc2e858c4e64f48120c&chksm=8025106bb752997dac1b005ce32d835e336cb57cdf666d95977856eb547cee726736ccf3d78c&scene=27#wechat_redirect) 51 | - [2021-02-22-设计灵感:12-个视频播放器界面设计](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651571023&idx=4&sn=a31fe19643f071386098c30212fdda35&chksm=8025148eb7529d987abdbd2a4012e3c6b2c89fc76fd152d251b9cdfb342a5b2864952e94204d&scene=27#wechat_redirect) 52 | - [2021-02-15-前端搞工程化:从零打造性能检测库「源码-+-视频」](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651570619&idx=2&sn=731f5eed1f460af40882901e288694f6&chksm=8025167ab7529f6cede54d0c6f91060779d615ebd752bf009abf943d340f1877939c39564a78&scene=27#wechat_redirect) 53 | - [2020-08-19-前端音视频的那些术语](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651561609&idx=2&sn=724e0db44c9fef2473512545657a553a&chksm=80254948b752c05eaa5763fd1f4e9d3047b5a3b7600e9da3a26c51d50f3880f1a5d04cbc776e&scene=27#wechat_redirect) 54 | - [2020-07-18-玩转前端-Video-播放器](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651560647&idx=1&sn=6d10186c6e404de7e596cc152a34ab7a&chksm=80254d06b752c4109b23010e60aa455d3724133902790073bcc92d5f2f486aa535b73d9e6c42&scene=27#wechat_redirect) 55 | - [2020-01-26-Web-视频播放前前后后那些事](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651557793&idx=1&sn=a70ce12286324dfd0dc3ce1f3bb0b971&chksm=80255860b752d1764fc9f7413aa5d14c61fd58782fa0c175a53a9c46993f84c2274efad68083&scene=27#wechat_redirect) 56 | - [2021-05-31-如何抓住社交风口下的音视频直播技术-|-极客时间](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247509669&idx=3&sn=7cd9fd34125782f50814a9851efad7c5&chksm=f95213e6ce259af004513ba69c815963b1083334eb09f4d67b64582abb6b658256ed1a1e7218&scene=27#wechat_redirect) 57 | - [2021-05-19-声网、新东方、伴鱼英语的音视频技术解读-|-InfoQ](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247509333&idx=3&sn=85ecd1f0024ca5ff8bff4033454bcb10&chksm=f9521016ce259900c5be4732586840f1d27c07295ae47f6450955916b7baa8a7ad7aad085f77&scene=27#wechat_redirect) 58 | - [2021-03-12-字节跳动、美团、阿里等国内大公司的-200+-技术干货视频,任你选-|-活动推荐](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247507294&idx=3&sn=67b11856a380000a908fe8c67528a886&chksm=f952681dce25e10bc5a9fba0f3e7a80756eba1e64b0fb02d9d64e7c137050f21e3e9371fe801&scene=27#wechat_redirect) 59 | - [2020-12-06-前端人,咱别盲目追求新技术-|-直播推荐](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247504000&idx=1&sn=0caf565dce42bd1520b74caf74eeeebd&chksm=f95265c3ce25ecd52c7c69cd12d737039d8d8a02cc23de14ebd1004b4be72de8680b3a4bf997&scene=27#wechat_redirect) 60 | - [2020-09-23-从5G技术突破、音视频探索到通信架构演进,你想看的通信领域全场景都在这里了-|-活动推荐](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247501189&idx=3&sn=7aa52a71913c67eff2468b8d6aaffa64&chksm=f95270c6ce25f9d0b480a3f34dee1d08d9377b8eeb55b092b71cf1af1ae779095f7f11929297&scene=27#wechat_redirect) 61 | - [2020-09-01-让项目5分钟上线成为可能!美团金服前端工程化实践丨直播预告](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247500233&idx=2&sn=8c52adb1c548fefda1a94fcd92b190ec&chksm=f952748ace25fd9cb54bd1a4a78e24ae46b294baba8385da8d6a979ca646d38a75ff7e8fc990&scene=27#wechat_redirect) 62 | - [2020-08-20-Android-11强制用户使用内置摄像头,谷歌让安卓更封闭了吗?](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247499595&idx=1&sn=1bf389f415559f6c1c4a87337fdd7310&chksm=f9524a08ce25c31e35b893b1f7082cf44668607d07fb61dfe9a76beca59b43fdd2ff29e76b24&scene=27#wechat_redirect) 63 | - [2020-05-22-缩短70%开发周期,淘宝直播智能玩法工程化方案](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247495135&idx=2&sn=efd31fb3af2ce7ca11beffbd2af51eea&chksm=f952589cce25d18a4292505d2d9d1336a9518d5689c4115de9829606c4cf0e3bef74238c6329&scene=27#wechat_redirect) 64 | - [2020-05-06-前端越管越宽,腾讯Now直播如何把监控体系做到极致?](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247494394&idx=1&sn=94c15aaffb191dfa1f96f6ec00dfb88a&chksm=f9525fb9ce25d6afd1e061c7176c04c33fdc8b534c5d27067f89e2ec0b98cabafd47cb1a3339&scene=27#wechat_redirect) 65 | - [2020-02-17-InfoQ-网站视频模块又又又又上线啦!](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247493763&idx=2&sn=b6e8c81ace7f0a4723630db367c20677&chksm=f9525dc0ce25d4d632bd84a060c966712e75c6ae4d9b6867b05dca516a74687b59b10bed6d63&scene=27#wechat_redirect) 66 | - [2020-01-06-前端代码是怎样智能生成的-图像分离篇](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247493562&idx=2&sn=f7f7c0952ce807753f36c210364a833a&chksm=f95252f9ce25dbef2f0297bc4cabacf7dbc06098abc6f32b4f0fbd728716b1d178bb7b76d15d&scene=27#wechat_redirect) 67 | - [2019-12-03-腾讯在线教育的Web音视频架构方案](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247493279&idx=2&sn=d0627948f62c0a67c8824ffb72fce8aa&chksm=f95253dcce25dacacc3607d0965e2f40465974cfc2af909cb8f303305d4291f79f5670231254&scene=27#wechat_redirect) 68 | - [2019-11-12-音视频App爆发,这些Web架构方案你要了解](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247493043&idx=2&sn=cf258780408e3921461092c85a59dc3c&chksm=f95250f0ce25d9e6cae5c395f12eb0640c21aab25614fbf693a5d1a10876c81e2276dc15a6ac&scene=27#wechat_redirect) 69 | - [2019-11-11-修改Chromium源码,实现HEVC/H.265-4K视频播放](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247493031&idx=2&sn=56ac89b64067663f2b6152152ae3d62e&chksm=f95250e4ce25d9f21b5d030b174a1447c25d8e982fa324acf648c9bee95e7ee641e0544ffbf6&scene=27#wechat_redirect) 70 | - [2019-10-31-解读B站跨平台播放器IJKPlayer的前世今生](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247492951&idx=2&sn=6ca326d7f69d338f711c0c1841ff7589&chksm=f9525014ce25d902441ec433363b684266670409dbc35deeb999482a2ac73610890ad5f4361d&scene=27#wechat_redirect) 71 | - [2019-10-29-腾讯NOW直播丨大前端监控体系建设案例](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247492919&idx=2&sn=2f8ab2115ce1cd95810b9e81cabb63cc&chksm=f9525074ce25d96274a822256d59b03e3207ab5e0d947b858bbb0c2cd91cdc6345cf9301f7b3&scene=27#wechat_redirect) 72 | - [2019-10-28-探秘实时音视频与网络技术难点](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247492903&idx=3&sn=0d7f6c6b4c1e57f1342e196a4d0ed09c&chksm=f9525064ce25d972f3bb46def489a2923831787ba0e5278d1da2cc24f200bee5765201237e01&scene=27#wechat_redirect) 73 | - [2019-10-15-从编码到网络传输,揭秘低延音视频背后的技术架构](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247492750&idx=3&sn=1b8d04d7a3d15ee2426257889a935961&chksm=f95251cdce25d8dbd5905a5e3ccf55e29a02b7066d5ffcc462aecbc0ced50ae7352cb2b733d5&scene=27#wechat_redirect) 74 | - [2019-10-10-直击音视频技术核心,QCon音视频晚场活动等你参加](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247492706&idx=3&sn=f81569d938029c9b297f118acef66050&chksm=f9525121ce25d837aac12cd6b3745bd7d85a844319e572dff9ee57b5478d826d91dd96d22d29&scene=27#wechat_redirect) 75 | - [2019-10-04-蚂蚁金服褚霸:敲最牛的代码,骑最野的车丨二叉树视频](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247492656&idx=1&sn=6998530ea0f13a6fe7575800cef7f900&chksm=f9525173ce25d865bcab9ddcbed0e8ed8d999df57b8177ee074ee5c7fbd958f714a7cdb30bf8&scene=27#wechat_redirect) 76 | - [2019-09-11-嵌入式图像预览技术:允许人们在延迟加载过程中加载预览图像](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247492470&idx=2&sn=b569812be2e6bad250a47af2eec5e6ca&chksm=f9525635ce25df2313870c68c05e95f1fe50096b9d227610bcaab84aac5ddfaca7fffa0ed2b3#rd) 77 | - [2019-09-06-实时音视频低延稳定背后的技术,看这个实践案例就够了](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247492417&idx=3&sn=3c4dbd489581f7797c8fcd339e915d8e&chksm=f9525602ce25df1431dc802a074ef8c540948d3a1dc0158063e5a166acd8448bd4f4d761fb56#rd) 78 | - [2019-07-27-社群直播-|-手把手带你实操-SQL-优化](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247491950&idx=3&sn=dbb2b1ad5ce196dd50294b63b9c4e43e&chksm=f952542dce25dd3be7541079d9e85d63ecb279feb11a3cb3ddd0439a24719fb66b5d46c533f0&scene=27#wechat_redirect) 79 | - [2019-07-26-腾讯Now直播前端工程化的实践之路](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247491938&idx=2&sn=42eec8f2490b98028a62f8b18f35a8d8&chksm=f9525421ce25dd3779fd04ceca0844a1ea84ba40f2f36c4b696857a8b2f18815b2c77a1a717b&scene=27#wechat_redirect) 80 | - [2018-11-17-你不知道的WebRTC-弱网模拟测试](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng%3D%3D&mid=2247489898&idx=1&sn=9eb83f0d9883913918cacc5d9b467aa3#wechat_redirect) 81 | - [2022-05-04-浏览器中的音视频知识总结工作中需要和音视频打交道必看!](http://mp.weixin.qq.com/s?__biz=MzUxNzk1MjQ0Ng==&mid=2247506567&idx=1&sn=9169eaf2de0d6ad1513d7f7ac47a9ca0&chksm=f992dc56cee55540b554868353ab3926c4ac01f279347d67e706c7aca93c01c3170035a1c31d#rd) 82 | - [2019-11-28-ALive:助力阿里经济体,开启直播新纪元](https://fed.taobao.org/blog/taofed/do71ct/taofed-alive-linwan) 83 | - [2019-11-13-哇哦视频-❤️-FaaS---迁移前后的那些事儿](https://fed.taobao.org/blog/taofed/do71ct/wawo2faas) 84 | - [2019-11-13-哇哦视频-❤️-FaaS---迁移前后的那些事儿](https://fed.taobao.org/blog/2019/11/13/wawo2faas/) 85 | - [2019-03-19-Web端H.265播放器研发解密](https://fed.taobao.org/blog/taofed/do71ct/web-player-h265) 86 | - [2019-03-19-Web端H.265播放器研发解密](https://fed.taobao.org/blog/2019/03/19/web-player-h265/) 87 | - [2021-03-20-借助ffmpeg.wasm纯前端实现多音频和视频的合成](https://www.zhangxinxu.com/wordpress/2021/03/ffmpeg-wasm-audio-video-merge/) 88 | - [2019-05-16-如何让MP4-video视频背景色变成透明?](https://www.zhangxinxu.com/wordpress/2019/05/mp4-video-background-transparent/) 89 | - [2018-12-24-从天猫某活动视频不必要的3次请求说起](https://www.zhangxinxu.com/wordpress/2018/12/video-moov-box/) 90 | - [2018-12-03-HandBrake乃Web-MP4视频免费压缩工具不二之选](https://www.zhangxinxu.com/wordpress/2018/12/handbrake-web-mp4-video-compress/) 91 | - [2021-07-09-科技爱好者周刊(第-166-期):视频学习胜过读书吗?](http://www.ruanyifeng.com/blog/2021/07/weekly-issue-166.html) 92 | - [2020-01-14-FFmpeg-视频处理入门教程](http://www.ruanyifeng.com/blog/2020/01/ffmpeg.html) 93 | - [2019-07-15-iMovie-入门教程:视频编辑的利器](http://www.ruanyifeng.com/blog/2019/07/imovie-tutorial.html) 94 | - [2019-06-10-响应式图像教程](http://www.ruanyifeng.com/blog/2019/06/responsive-images.html) 95 | - [2019-01-31-一段音频](http://www.ruanyifeng.com/blog/2019/01/a-piece-of-audio.html) 96 | - [2018-11-08-开发技巧:使用-ImageMagick-进行图像处理](http://www.yyyweb.com/5199.html) 97 | - [2018-06-06-图像处理---ImageMagick-简单介绍与案例](https://jelly.jd.com/article/5c34081bd7aa2c0055d09a71) 98 | - [2016-10-08-A-Frame-WebVR试玩报告](https://jelly.jd.com/article/6006b1045b6c6a01506c87b9) 99 | - [2016-08-24-浅谈-WebVR](https://jelly.jd.com/article/6006b1045b6c6a01506c87d2) 100 | -------------------------------------------------------------------------------- /details/tags/canvas-image.md: -------------------------------------------------------------------------------- 1 | :alarm_clock: 更新时间: 2022-06-30 08:00:50。[文章来源](/README.md)、[文章分类](/TAGS.md) 2 | 3 | ## Canvas、SVG、图像 4 | 5 | 6 | > 关键字:`Canvas`、`SVG`、`WebGL`、`3D`、`PNG`、`WebP`、`RGB`、`GUI` 7 | 8 | 9 | 10 | - [2022-02-25-【第2539期】动手打造一款-canvas-排版引擎](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651252843&idx=1&sn=523ed1fd96405b60cbad074e8085d86c&chksm=bd4931ef8a3eb8f9f9f469a5219a1d74a0670918e70b477ac497207d412f9f602b39a7348baf#rd) 11 | - [2021-05-07-【第2271期】如何1人5天开发完3D数据可视化大屏之四](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651245850&idx=2&sn=ba167dd3d978ffb07a49106071cedbab&chksm=bd49149e8a3e9d88295e31fd4fb7292d684f43e4405b494eb8e0a59467384966da22395e2b51&scene=27#wechat_redirect) 12 | - [2021-04-28-【第2267期】如何1人5天开发完3D数据可视化大屏之三](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651245750&idx=2&sn=7d20f34029457a5dd5479fd89480fb0d&chksm=bd4915328a3e9c2434d9ed5bf92d76e1ef191704c1270cc56d7f69bd8e33d34e084fa62747d0&scene=27#wechat_redirect) 13 | - [2021-02-06-【第2199期】如何在WebGL中实现短视频卡点动效](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651243948&idx=1&sn=7f2c609ed504f046a6adf5703ce9756b&chksm=bd491c288a3e953e3f18db66784e4ef22563ce8b7478f8ce593b4e68819777c6260959321fbe&scene=27#wechat_redirect) 14 | - [2021-01-20-【第2182期】揭秘3D互动技术在蚂蚁数字金融的应用实战](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651243499&idx=1&sn=86b7b264866f33ce94f748819fe5c2ec&chksm=bd491a6f8a3e9379b6b94317bd32413f5d0a939609d5d0bdc6fb92852dbe6203f1d38dbf0942&scene=27#wechat_redirect) 15 | - [2020-12-15-【第2148期】Figma-+-Gitlab-CI-一键交付-SVG-多色图标库](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651241995&idx=2&sn=5dd946a0c23cc1c42c1930a7cab3d6ea&chksm=bd49678f8a3eee99f0a3b919c9e34332fbb59238a38347f1f38c3e8ca0a182dffa99de506976&scene=27#wechat_redirect) 16 | - [2020-11-17-【第2120期】如何1人5天开发完3D数据可视化大屏之二](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651241119&idx=2&sn=80f29716da2c5e133f46591a94f8bedb&chksm=bd49631b8a3eea0df262597e44edcb97b3d5ba3b93efe4c8ca2fc1314a2f79fbeecd516991e2&scene=27#wechat_redirect) 17 | - [2020-11-01-【第2104期】如何1人5天开发完3D数据可视化大屏之一](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651240788&idx=1&sn=c5ed645338a9a2dc76c2bf833c265b35&chksm=bd4960d08a3ee9c6c492601ba01bee34ad839b04e94c644bbff8e1b6658d5cbed939c698b6d7&scene=27#wechat_redirect) 18 | - [2020-10-23-【第2095期】用Canvas实现一个动态甜甜圈图表](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651240436&idx=2&sn=25849d34dc224bd78f2c082477126a6a&chksm=bd496e708a3ee766ff17c21684a6d428ef9f407b1f25ef3449f950512fd7745d1cfd2778384b&scene=27#wechat_redirect) 19 | - [2020-08-17-【第2036期】如何将Canvas绘制过程转为视频](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651238965&idx=1&sn=01c9e347a9acfb5a544eab1d22cfcaac&chksm=bd496bb18a3ee2a7791a730c5abd0a4a28c67d7b44299e7f1dcd9a97196f3597326fd0eab51e&scene=27#wechat_redirect) 20 | - [2020-08-12-【第2031期】APNG-那些事](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651238809&idx=2&sn=ba79090438b9773e29ad4372331987b2&chksm=bd49681d8a3ee10b57805621b5456ed4e5511c66e335ca92ee8ea7898504eecdea1b8479e0a1&scene=27#wechat_redirect) 21 | - [2020-07-24-【第2012期】支付宝Web3D发展史](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651238341&idx=1&sn=677b288a0e2983ed508eca8a762b132b&chksm=bd4976418a3eff57f7adcb4b391d9c619241246d9f74a25970029366397034b9fbfc9ce9b242&scene=27#wechat_redirect) 22 | - [2020-06-28-【第1986期】使用-Figma-+-GitHub-Actions-完成-SVG-图标的完全自动化交](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651237639&idx=1&sn=14cddfda7767be0db68f93034fa4a29d&chksm=bd4974838a3efd95db64be1b871685ce583cd53a505c2876216ded23ac8b93923ef6fbcd18c7&scene=27#wechat_redirect) 23 | - [2020-06-12-【第1973期】SVG-图标制作指南](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651237300&idx=1&sn=f8c774313fa66ec39b62b00374687080&chksm=bd4972308a3efb26a5ef6be24e1e005d5489bff99af554f3b5ee40c12314851cb88dbb064e63&scene=27#wechat_redirect) 24 | - [2020-05-31-【第1961期】如何用Canvas拍出JDer's工作照](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651236999&idx=1&sn=d41f301d13a9013be9ce03cf472c3819&chksm=bd4973038a3efa15eae4c213054ee4cf5a04c6280d0384f33b197d734b85f0f696839b5e0208&scene=27#wechat_redirect) 25 | - [2020-03-05-【第1875期】如何在页面极速渲染3D模型](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651235867&idx=1&sn=095c58cab3ef7723a6b6fa2238b59728&chksm=bd497f9f8a3ef68915c6ee4e10d843b980fa19575605c8bb9e0d1ee0e4b2d5195689fb178956&scene=27#wechat_redirect) 26 | - [2019-06-19-【第1644期】RGB、HSL、Hex网页色彩,看完这篇全懂了](https://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651232609&idx=1&sn=770f364532e85fc7e1cf70b664b4b4c5#rd) 27 | - [2019-03-30-【第1570期】PNG图片压缩原理解析](https://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651231884&idx=1&sn=f61c54167a67faebbf2ff741cb566e1d#rd) 28 | - [2019-01-22-3分钟打开Web-3D图形学的大门](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651231239&idx=1&sn=629df84a6b83bc426f7a23cf438cf60b#wechat_redirect) 29 | - [2019-01-18-【英】A-UX-Guide-For-Designing-Error-Pages](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651231202&idx=3&sn=5b7ea3d6273a1ffac515a22caffe404a#wechat_redirect) 30 | - [2019-01-12-【英】A-guide-to-color-accessibility-in-product-design](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651230974&idx=3&sn=781f83ae87cd14985fb715444230648f#wechat_redirect) 31 | - [2019-01-10-【第1502期】An-English-Guide-for-Programmers---专为程序员编写的英语学习指南。](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651230950&idx=2&sn=998a8cad9d49ab1ebfb036300bf4a89c#wechat_redirect) 32 | - [2021-03-11-设计灵感:网页里的3D插画!立体风格的创意表达](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651572576&idx=4&sn=7694b785969db5cec8e813360f0c99bd&chksm=80251ea1b75297b7c081a1701722650a86eb7bb7841a40427a3fd27a51faf42e7666d0b5c8c7&scene=27#wechat_redirect) 33 | - [2020-12-21-设计灵感:把-3D-图案应用到网页界面设计中](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651564868&idx=3&sn=d6909961ce1ec90f54ba0e94e0971723&chksm=80257c85b752f593ab5cfde2eb69fa6f87d2a0526b62ff972157d4e6659c420b0a3c7c99c2d7&scene=27#wechat_redirect) 34 | - [2019-06-26-RGB、HSL、Hex网页色彩,看完这篇全懂了](https://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA%3D%3D&mid=2651556638&idx=1&sn=7459511a8c7642075bfe8468230b51ad#rd) 35 | - [2019-06-12-一根飞线的故事(SVG-篇)](https://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA%3D%3D&mid=2651556545&idx=1&sn=32465aa445daed560b3fdf84e8fd4a4f#rd) 36 | - [2019-04-01-PNG-图片压缩原理解析](https://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA%3D%3D&mid=2651556141&idx=1&sn=e76a8e761351816cfe905217b6304fa6#rd) 37 | - [2019-01-06-canvas-中普通动效与粒子动效的实现](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA%3D%3D&mid=2651555675&idx=1&sn=7c7262f37931a5ec866ccdd2268f0f18#wechat_redirect) 38 | - [2022-06-01-前端3D渲染实战:从零开始用WebGL编写卡通风格着色器](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247515038&idx=1&sn=f90b309b2fc3e7b08fb3c18647b157dd&chksm=f9520eddce2587cbf72d1574dbf6f2844aebc999771553e6178b1151001c1bfd20161d4a449b#rd) 39 | - [2021-12-20-从WebGL到WebGPU,网页图形的全新时代](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247512172&idx=1&sn=7527199067c4f022fd10d2f0f14a528c&chksm=f952052fce258c392f707f840b11f1c14a50b1c8869d656421e734c7b5796bd9a7248d6815bb#rd) 40 | - [2020-03-24-亿级前端项目中的3D技术:支付宝2020年新春活动的背后](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247494022&idx=1&sn=9bf1eaf5e07c287ea59b7046096aa3fe&chksm=f9525cc5ce25d5d377f6caf5365741026423552955859781aabd04062d94a8b2fc1135b935ff&scene=27#wechat_redirect) 41 | - [2018-11-13-搞定复杂-GUI!西安交大提出前端设计图自动转代码新方法](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng%3D%3D&mid=2247489854&idx=1&sn=4828d5d36c3becdf8b1f46490b5ce708#wechat_redirect) 42 | - [2022-01-19-为了让她10分钟入门canvas,我熬夜写了3个小项目和这篇文章!](http://mp.weixin.qq.com/s?__biz=Mzg2NjY2NTcyNg==&mid=2247485045&idx=1&sn=2c09e9c441a099add7942e9e156a5ecf&chksm=ce4613e4f9319af289f53c01b36c74c10fbc1751cb3a8aead72ac583ced797cd40ff10653a2a#rd) 43 | - [2022-01-05-吐血推荐一大波让你直呼哇塞的Canvas库](http://mp.weixin.qq.com/s?__biz=MzUxNzk1MjQ0Ng==&mid=2247502410&idx=3&sn=e2bb7ff7e7a5dab1082dd529be30b34d&chksm=f992cc9bcee5458d41cfa52a6effa529220cb0e08cd5de3b354c604c549e1f471d1571dd4c68#rd) 44 | - [2021-08-05-服饰3D柔性渲染调研及实践](https://fed.taobao.org/blog/taofed/do71ct/fufsgh) 45 | - [2020-10-12-用SVG实现一个优雅的提示框](https://fed.taobao.org/blog/taofed/do71ct/ghpnlx) 46 | - [2020-08-13-一起来玩玩WebGL--第二弹](https://fed.taobao.org/blog/taofed/do71ct/ghlebo) 47 | - [2019-12-04-iceworks:-从-GUI-开发工具到集成研发工作台](https://fed.taobao.org/blog/taofed/do71ct/icework-v1-to-v2) 48 | - [2019-12-02-GCanvas渲染引擎的演进](https://fed.taobao.org/blog/taofed/do71ct/gcanvs-engine-evolution) 49 | - [2018-12-18-WebGL-纹理详解](https://fed.taobao.org/blog/taofed/do71ct/webgl-texture) 50 | - [2018-12-17-WebGL-纹理详解](https://fed.taobao.org/blog/2018/12/17/webgl-texture/) 51 | - [2018-03-05-G3D-——-Hybrid-环境下的-WebGL-3D-渲染引擎](https://fed.taobao.org/blog/2018/03/05/intro-to-g3d/) 52 | - [2017-07-27-GCanvas-渲染引擎介绍](https://fed.taobao.org/blog/2017/07/27/gcanvas/) 53 | - [2021-09-12-APNG在线制作、兼容、播放和暂停](https://www.zhangxinxu.com/wordpress/2021/09/apng-maker-pause-play-ie/) 54 | - [2021-08-07-SVG任意基本图形转path路径](https://www.zhangxinxu.com/wordpress/2021/08/svg-shape-to-path/) 55 | - [2020-10-17-SVG-feTurbulence滤镜深入介绍](https://www.zhangxinxu.com/wordpress/2020/10/svg-feturbulence/) 56 | - [2020-06-03-SVG任意图形和path路径的面积计算](https://www.zhangxinxu.com/wordpress/2020/06/svg-area-calc/) 57 | - [2018-10-03-搞懂SVG/Canvas中nonzero和evenodd填充规则](https://www.zhangxinxu.com/wordpress/2018/10/nonzero-evenodd-fill-mode-rule/) 58 | - [2022-03-24-WebGL-的-Hello-World](http://mp.weixin.qq.com/s?__biz=MzIxMzExMjYwOQ==&mid=2651898496&idx=2&sn=695902624edb4a4f7ad4d08879923b14&chksm=8c5fa0cebb2829d82714a544d3fabd34733b16bb2fa827d8f7dc29a429f75aec180ef68656e7#rd) 59 | - [2022-03-17-Web3D-从入门到跑路-·-3D-初体验](http://mp.weixin.qq.com/s?__biz=MzIxMzExMjYwOQ==&mid=2651898432&idx=2&sn=023d6f885d775689a9462828b2c90609&chksm=8c5fa00ebb282918c258656a6d428e57fc4870d67e964f1483bb503c4d135f354bf44118889a#rd) 60 | - [2017-05-25-canvas-图像旋转与翻转姿势解锁](https://jelly.jd.com/article/6006b1045b6c6a01506c87e6) 61 | - [2017-01-16-聊聊-SVG-基本形状转换那些事](https://jelly.jd.com/article/6006b1045b6c6a01506c87d6) 62 | - [2016-11-22-三看-SVG-Web-动效](https://jelly.jd.com/article/6006b1045b6c6a01506c87c9) 63 | - [2016-11-07-APNG-那些事](https://jelly.jd.com/article/6006b1045b6c6a01506c87be) 64 | - [2016-09-28-在网页上实现-3D-Touch-效果](https://jelly.jd.com/article/6006b1045b6c6a01506c87b8) 65 | - [2016-07-09-拥抱Web设计新趋势:SVG-Sprites实践应用](https://jelly.jd.com/article/6006b1045b6c6a01506c87af) 66 | - [2016-06-23-探究WebP一些事儿](https://jelly.jd.com/article/6006b1035b6c6a01506c87a9) 67 | - [2016-04-13-Canvas虹膜消除转场](https://jelly.jd.com/article/6006b1035b6c6a01506c87a0) 68 | - [2015-11-20-SVG-I-Know](https://jelly.jd.com/article/6006b1025b6c6a01506c877d) 69 | -------------------------------------------------------------------------------- /details/tags/dev-game.md: -------------------------------------------------------------------------------- 1 | :alarm_clock: 更新时间: 2022-06-30 08:00:50。[文章来源](/README.md)、[文章分类](/TAGS.md) 2 | 3 | ## 游戏开发 4 | 5 | 6 | > 关键字:`游戏`、`Three.js`、`Create.js`、`Matter.js` 7 | 8 | 9 | 10 | - [2021-05-19-【招聘】广州酷狗音乐直播部门招Web、游戏前端开发工程师](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651246110&idx=2&sn=d8a0d3acae6398b99e904704617468aa&chksm=bd49179a8a3e9e8c383b110112ed00b0e534af4ffda48ae40f114234bd91fc286c7f578fdb24&scene=27#wechat_redirect) 11 | - [2021-01-28-【招聘】腾讯游戏流量中台招前端开发工程师](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651243702&idx=2&sn=36c7e47c53773df8308da8a6c034dba7&chksm=bd491d328a3e9424f698544779a73163a3eef52b2826d6197ae8842171732cb75f08b59b9e16&scene=27#wechat_redirect) 12 | - [2020-12-22-【第2155期】搅动H5游戏世界的鲶鱼——Cocos](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651242640&idx=2&sn=dfb00ebea24f9ffe0cc669d69f032344&chksm=bd4919148a3e9002e251408acb562443a526fcf8f33189f9a96e15f21686e379434d628e24a2&scene=27#wechat_redirect) 13 | - [2020-10-29-【第2101期】纯CSS实现密室逃脱游戏](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651240728&idx=1&sn=a9c3005236c654dd665e1fa32afbb664&chksm=bd49609c8a3ee98a52de868d0079c9b60f1acfcc113d11d4b82d0d957698435eaaa355deee8a&scene=27#wechat_redirect) 14 | - [2020-09-04-【招聘】字节跳动杭州游戏平台招前端开发实习+社招](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651239387&idx=2&sn=042bc04329f19dbb8bc076a67a68f917&chksm=bd496a5f8a3ee3496966e09e4ad809e6e5468dff625c9af9129166520fa0eb336e6c48eb37c9&scene=27#wechat_redirect) 15 | - [2019-09-18-【招聘】厦门4399游戏2020届校园招聘](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651233769&idx=2&sn=ecd1cdf9b212793e8f42d58bfbb9ecc7&chksm=bd49446d8a3ecd7b6a4a172c776d7e7521c8c4d2302042df76bc871cb7092a30888ec8b08f8d#rd) 16 | - [2019-08-31-【第1713期】腾讯TGideas@花叔:我的小游戏开发之路](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651233654&idx=1&sn=7e7ece4561d6375fa191e2f54a73b830&chksm=bd4944f28a3ecde48887243240958b873fd26ae5ac9cd668d1f772bf6934eeca5a2b219bf461#rd) 17 | - [2019-08-21-W3C-Web-游戏技术研讨会](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651233472&idx=3&sn=0f0582994ef74a7ee2014109680a0f20&chksm=bd4945448a3ecc5288f06bc515f8f02fd7f868f1e270c48c091d806afda31364abbbe5a82796#rd) 18 | - [2019-07-21-【图书】Three.js开发指南:基于WebGL和HTML5在网页上渲染3D图形和动画](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651233112&idx=3&sn=67eeb9be55defcd8c2441c691802694c&chksm=bd4942dc8a3ecbca5c0d6c44b7e3b2d6d9457f8cf8682778a59bf7e16a2f9e738c663dee0503#rd) 19 | - [2019-06-27-【活动】小游戏开发专场@2019厦门大前端技术沙龙之](https://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651232816&idx=1&sn=b59350089ad0b5614d03dc5a2285895d#rd) 20 | - [2019-03-26-【微信小游戏】研究一下物理引擎,做了个游戏](https://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651231831&idx=2&sn=94f176a8e3667cb25ea4ac224b4a0397#rd) 21 | - [2019-01-30-【微信小游戏】财神养成记](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651231323&idx=2&sn=cf50fbcfb9cabd0b69f1a96cdcee96b7#wechat_redirect) 22 | - [2018-12-05-【微信小游戏】一笔一连](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651230639&idx=2&sn=93ecaa66b0f4524ad37140b4c11af141#wechat_redirect) 23 | - [2018-11-21-【微信小游戏】牙牙快跑](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651230460&idx=2&sn=e9fb95069d9fcd85a395ec9875a5524a#wechat_redirect) 24 | - [2018-09-20-【小册】一线大厂是如何开发微信小游戏的?](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651229902&idx=1&sn=eedae5958157d82239b91934721df32e#wechat_redirect) 25 | - [2022-04-10-一看就懂---从零开始的游戏开发](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651601868&idx=2&sn=1153039359303240b60969da6cac6e4b&chksm=8022ec0db755651b5f99cb7fc72e9dd3e7e08566e02bfe44ac6db6f6476fdf65331480f5a4f1#rd) 26 | - [2022-03-04-通过漫天花雨来入门-Three.js](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651599995&idx=2&sn=1448e707e2850d6525f2f8e00e8287df&chksm=8022e3bab7556aac40eebe7c3bf2911db690efd38280641b0b2068d57dfdf3071db534e9fc46#rd) 27 | - [2022-02-12-Three.js-实现-2022-冬奥主题-3D-趣味页面](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651597221&idx=1&sn=c497dc8da369ae8e470c85d3ba8e4bbc&chksm=8022fe64b7557772b85b7107f14622e29783ffe5b14b8c13a89265baf1a00a0f84cadab5b7dd#rd) 28 | - [2021-05-20-设计灵感:游戏类APP如何吸引人们的兴趣?](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651576212&idx=4&sn=7c419b2674063737dfa6e322bdbecaed&chksm=80250055b752894396ea784cf59a7aaecb6d8d4534560ad49469047b4aa85df6d3fc06ae14e2&scene=27#wechat_redirect) 29 | - [2021-04-23-用three.js写一个下雨动画](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651574231&idx=2&sn=cbf8d400cec5b16d52855b9dfd85b1ed&chksm=80251816b7529100cc472f75d44f98ec8d6ea59cd97825a0bf09890c920556010237651fce9d&scene=27#wechat_redirect) 30 | - [2021-04-20-关于从入门-three.js-到做出-3d-地球这件事通俗易懂的入门](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651574123&idx=2&sn=52a2852d0105d69e69b3027f90f34b42&chksm=802518aab75291bc237a2b0ea3dfa3e2d36def01fc200ceedc65f79c63f50622b6bced485f74&scene=27#wechat_redirect) 31 | - [2021-03-15-three.js-实现露珠滴落动画](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651572586&idx=2&sn=e78859314bd92c8c08f3d09729587677&chksm=80251eabb75297bdbb3c761e61220dd00a03ab0d90846663092456aa56a9ccd9a3f640482af1&scene=27#wechat_redirect) 32 | - [2021-01-01-Chrome-的小恐龙游戏,被我破解了...](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651566181&idx=2&sn=fe35eaf0f37a55456990d20dec571815&chksm=802567a4b752eeb2179bf91aec89c9609097497fcc11ef42ccc6ef74fafbbacc3ef06b44b7f4&scene=27#wechat_redirect) 33 | - [2020-11-04-纯-CSS-实现密室逃脱游戏](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651563480&idx=2&sn=626e3192f89a0c2653f5ad75d99857af&chksm=80257219b752fb0f3e1760437d59f81924b05604d1a8c9f2443f0bbbbdc142861f033441f3ca&scene=27#wechat_redirect) 34 | - [2020-04-05-二营长,快掏个CSS出来给我画个井字棋游戏](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651558133&idx=1&sn=480b69d284b0c507d36d1c77b0607dca&chksm=80254734b752ce224c5b5d940710578686989d6f0ce838c30770ab3d9a87da28c596c2720990&scene=27#wechat_redirect) 35 | - [2019-01-15-玩游戏一样学-Git-分支,这个-GitHub-热门别再错过了](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA%3D%3D&mid=2651555724&idx=1&sn=cc20ac2fe8e0230a4a0a21a811a96a0a#wechat_redirect) 36 | - [2018-09-20-一线大厂是如何开发微信小游戏的?](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA%3D%3D&mid=2651554949&idx=1&sn=8f5e52799febe5f3137cf1c21fc65b20#wechat_redirect) 37 | - [2020-03-27-Google-Cloud-和-网易游戏一起震荡,让一部分游戏先出海](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247494078&idx=3&sn=74a5f4028fde90d257ddceeae4a49271&chksm=f9525cfdce25d5ebc34ba556dc7ba1d186d7ec73d235c0cadfb9aca2e9b905e227a22acca5d6&scene=27#wechat_redirect) 38 | - [2019-10-16-如何打造出超“音”“速”的游戏体验?技术专家带你实战解读](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247492807&idx=3&sn=40da212281a70ae26b9ceb3104b9b502&chksm=f9525184ce25d892d1b808f60be2165015e852ffc02fcafafbe796e838c0599359dc666d1b66&scene=27#wechat_redirect) 39 | - [2019-08-22-从0到1,深度解读小游戏开发技术奥秘](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247492236&idx=3&sn=b0b031ffa8f6740eab0d08cb098b0400&chksm=f95257cfce25ded92623afa8f1779931c723e3d306b8f690dcc86c923b077b2dc8633514bf92#rd) 40 | - [2019-08-01-月活4亿,开发者人数10W+:爆款微信小游戏背后的技术本质是什么?](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247492002&idx=3&sn=bdf7bf96b208b391ca4c21cae2057231&chksm=f95254e1ce25ddf7690bc1292b70a8253d7559f961265c3c76ee470c629cf3a5e603cd923ade#rd) 41 | - [2019-05-17-框架的游戏:2019年JavaScript流行趋势](https://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng%3D%3D&mid=2247491255&idx=1&sn=5f97376750ea01da20e3986f11d794f8#rd) 42 | - [2022-01-26-想进阶Canvas吗?我熬夜写了3个有趣的小游戏!!!](http://mp.weixin.qq.com/s?__biz=Mzg2NjY2NTcyNg==&mid=2247485230&idx=1&sn=fbca66fb8092089d61edbb41e94e4b02&chksm=ce4612bff9319ba9c52c3773f9baf81418399235a579ea3fc5276aa282ba24b36b3f10a4f9bd#rd) 43 | - [2022-05-26-Canvas在超级玛丽游戏中的应用](http://mp.weixin.qq.com/s?__biz=MzA4ODUzNTE2Nw==&mid=2451063176&idx=3&sn=f8d9c07480a62c7c06e61a7cb3b0d0f8&chksm=87c45898b0b3d18e6f4fcc9df14f9f5f6e1cf457b0ad7b47b804cf33e7d3f10b862ed142d2b3#rd) 44 | - [2022-04-28-从《淘特斗地主》说起,前端如何做-h5-游戏的游戏体验](http://mp.weixin.qq.com/s?__biz=MzA4ODUzNTE2Nw==&mid=2451062878&idx=1&sn=d1832ae065bfc16534e896f577cefde1&chksm=87c4594eb0b3d058b9c17404a1312703200a0ad2675f02b95ed3038f1f9947d7693fc91d295e#rd) 45 | - [2022-04-26-Canvas在超级玛丽游戏中的应用](http://mp.weixin.qq.com/s?__biz=MzA4ODUzNTE2Nw==&mid=2451062816&idx=3&sn=77259a2a9b15b7568eb5f9dab9248e9c&chksm=87c45930b0b3d026abe3bf160375b1eb49fcf842ca5b5f4edc6b1938e7dc6af27b074f9af5b4#rd) 46 | - [2022-03-13-Canvas在超级玛丽游戏中的应用](http://mp.weixin.qq.com/s?__biz=MzA4ODUzNTE2Nw==&mid=2451061645&idx=3&sn=09aea7d6b1c9db0dd9cd7e608fb0c728&chksm=87c4229db0b3ab8b6b17745d5a182f8c8f269e8533bb58e09df7f198f65851b2e192a9c8efeb#rd) 47 | - [2022-02-27-Canvas在超级玛丽游戏中的应用](http://mp.weixin.qq.com/s?__biz=MzA4ODUzNTE2Nw==&mid=2451061347&idx=3&sn=585cb7f75ff968542733b542cbf855fa&chksm=87c42373b0b3aa65e751633354a1c94727ac95af1e28c5585a08c433f0f7ff61c275ab9c0af1#rd) 48 | - [2022-05-01-Three.js实现跳一跳在线玩](http://mp.weixin.qq.com/s?__biz=MzUxNzk1MjQ0Ng==&mid=2247506519&idx=1&sn=f4b1019fdb09cd331426461b45015147&chksm=f992dc86cee55590593d58e24c488bd9c189dee9d2843950f4abb21564e09e8f7e642a380a22#rd) 49 | - [2022-02-27-Three.js---实现地图边界炫光路径效果](http://mp.weixin.qq.com/s?__biz=MzUxNzk1MjQ0Ng==&mid=2247503624&idx=2&sn=f44d189dfbed48ed0762ae21d10613aa&chksm=f992c9d9cee540cf9faa22e441750b26e37ec44ed704869dd773c416b6f2eb254a6d7ace5fce#rd) 50 | - [2022-02-07-Three.js-实现-2022-冬奥主题-3D-冰墩墩-趣味页面](http://mp.weixin.qq.com/s?__biz=MzUxNzk1MjQ0Ng==&mid=2247503089&idx=2&sn=36f5c5f151d1fc6d758ddb93c702f95c&chksm=f992ca20cee543363b08f6fbed1970d34efa4070a509b32c6d8669679e3336f8514b97cd7c1c#rd) 51 | - [2021-12-16-新兴活跃在直播和游戏等各行业中的虚拟角色,你了解过了没?](http://mp.weixin.qq.com/s?__biz=MzI5NjM5NDQxMg==&mid=2247494941&idx=1&sn=a6c86f0de01a8ab2d1c9dc5ffb78616c&chksm=ec47a6dedb302fc81e6c7c83529b82baded0ae568a396614c19887bc945c57e8b1786898bb52#rd) 52 | - [2019-08-08-Fdcon-2018-分享:淘宝Web-3D应用与游戏开发实战](https://fed.taobao.org/blog/taofed/do71ct/fccon-share-taobao-3d-appandgame) 53 | - [2019-08-08-Fdcon-2018-分享:淘宝Web-3D应用与游戏开发实战](https://fed.taobao.org/blog/2019/08/08/fccon-share-taobao-3d-appandgame/) 54 | - [2021-07-23-科技爱好者周刊(第-168-期):游戏《底特律:变人》](http://www.ruanyifeng.com/blog/2021/07/weekly-issue-168.html) 55 | - [2021-06-11-科技爱好者周刊(第-162-期):生活就像《吃豆人》游戏](http://www.ruanyifeng.com/blog/2021/06/weekly-issue-162.html) 56 | - [2021-05-21-科技爱好者周刊(第-159-期):游戏开发者的年薪](http://www.ruanyifeng.com/blog/2021/05/weekly-issue-159.html) 57 | - [2020-11-20-科技爱好者周刊(第-134-期):未来的游戏业比现在大100倍](http://www.ruanyifeng.com/blog/2020/11/weekly-issue-134.html) 58 | - [2020-06-10-Epic-Games-研究:Fortnite-和游戏行业的未来](http://www.ruanyifeng.com/blog/2020/06/epic-games.html) 59 | - [2020-04-20-家用游戏机的历史:世嘉、任天堂和-PlayStation-的故事](http://www.ruanyifeng.com/blog/2020/04/game-console-history.html) 60 | - [2022-04-21-3D-沙盒游戏之人物的点击行走移动](http://mp.weixin.qq.com/s?__biz=MzIxMzExMjYwOQ==&mid=2651898761&idx=1&sn=6fcde395b029bb1c296aac20548da406&chksm=8c5fa1c7bb2828d16aef5a3d6db684f5809e91b64d7ca2b5046394303cd13b7339d33aa4b458#rd) 61 | - [2022-04-14-3D-沙盒游戏之地面网格设计](http://mp.weixin.qq.com/s?__biz=MzIxMzExMjYwOQ==&mid=2651898657&idx=1&sn=bd184fc9b31a0365d78dfb7c455ef766&chksm=8c5fa16fbb282879a337e041f79417f53630a170f75527e0bf3a121e7f8d59789a9d20e66043#rd) 62 | - [2022-03-24-3D-沙盒游戏之避障踩坑和实现之旅](http://mp.weixin.qq.com/s?__biz=MzIxMzExMjYwOQ==&mid=2651898496&idx=1&sn=c05d785975af2053616db32622a39024&chksm=8c5fa0cebb2829d8bac7d70b006fd82b92de8d20a3dcf31041e8c12566a9f1a205127e3b8f64#rd) 63 | - [2022-03-17-不懂物理的前端不是好的游戏开发者(二)——-物理引擎的学习之路](http://mp.weixin.qq.com/s?__biz=MzIxMzExMjYwOQ==&mid=2651898432&idx=1&sn=440e5e334de3982f9555156a357df1c2&chksm=8c5fa00ebb2829181355527ac447f3976c3059bed01e371560f593eb49dd1a9782bd026d7a09#rd) 64 | - [2018-12-24-全新-Phaser-3-游戏引擎特性一览](https://jelly.jd.com/article/5c3411efd7aa2c0055d09a85) 65 | - [2018-10-18-3D-物理世界---Three.js-与-Cannon.js-介绍与使用](https://jelly.jd.com/article/5c3409fed7aa2c0055d09a75) 66 | - [2018-01-28-H5游戏开发:FC小蜜蜂](https://jelly.jd.com/article/6006b1055b6c6a01506c8805) 67 | - [2018-01-17-H5游戏开发:消灭星星](https://jelly.jd.com/article/6006b1055b6c6a01506c8804) 68 | - [2018-01-04-H5游戏开发:套圈圈](https://jelly.jd.com/article/5cc18e24a3137601507fcaa8) 69 | - [2017-12-27-H5游戏开发:游戏引擎入门推荐](https://jelly.jd.com/article/6006b1055b6c6a01506c8800) 70 | - [2017-11-28-H5游戏开发:指尖大冒险](https://jelly.jd.com/article/6006b1055b6c6a01506c87fe) 71 | - [2017-11-16-H5游戏开发:决胜三分球](https://jelly.jd.com/article/6006b1055b6c6a01506c87fc) 72 | - [2017-11-06-H5游戏开发:推金币](https://jelly.jd.com/article/5da9cb00b73b470152998c89) 73 | - [2017-11-02-H5游戏开发:一笔画](https://jelly.jd.com/article/6006b1045b6c6a01506c87f9) 74 | - [2017-10-18-H5游戏开发:横屏适配](https://jelly.jd.com/article/6006b1045b6c6a01506c87f8) 75 | - [2017-09-25-H5游戏开发:贪吃蛇](https://jelly.jd.com/article/6006b1045b6c6a01506c87f4) 76 | - [2017-08-28-Three.js-现学现卖](https://jelly.jd.com/article/6006b1045b6c6a01506c87f2) 77 | - [2017-07-23-这里有你对-Web-游戏的疑问吗?](https://jelly.jd.com/article/6006b1045b6c6a01506c87ef) 78 | - [2017-07-19-一篇文章带你快速入门-CreateJS](https://jelly.jd.com/article/6006b1045b6c6a01506c87ee) 79 | - [2017-04-17-Matter.js-2D-物理引擎试玩报告](https://jelly.jd.com/article/6006b1045b6c6a01506c87e4) 80 | - [2016-12-04-源码赏析---1K的Firewatch游戏](https://jelly.jd.com/article/6006b1045b6c6a01506c87cc) 81 | - [2016-03-01-createjs开发入门](https://jelly.jd.com/article/6006b1035b6c6a01506c8796) 82 | - [2016-01-14-js游戏开发初级入门](https://jelly.jd.com/article/6006b1025b6c6a01506c878d) 83 | - [2016-01-02-使用ThreeJS在浏览器中展示全景图](https://jelly.jd.com/article/602f26b361dbb7014cffc5a0) 84 | - [2015-11-24-使用ThreeJS在浏览器中展示3D物件](https://jelly.jd.com/article/6006b1025b6c6a01506c8780) 85 | -------------------------------------------------------------------------------- /details/tags/dev-mobile.md: -------------------------------------------------------------------------------- 1 | :alarm_clock: 更新时间: 2022-06-30 08:00:50。[文章来源](/README.md)、[文章分类](/TAGS.md) 2 | 3 | ## 移动开发、Flutter相关 4 | 5 | 6 | > 关键字:`Flutter`、`PWA`、`移动开发` 7 | 8 | 9 | 10 | - [2021-01-04-【第2166期】满帮动态化Flutter框架-—-Thresh开源啦~~](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651243066&idx=1&sn=28afea87c57128fabcce0517c7b0dcc8&chksm=bd491bbe8a3e92a895fb4c62e407b27072effc2b9f7e5421b906fb25b27c57e4cd102e4b6ac6&scene=27#wechat_redirect) 11 | - [2020-07-07-【早读】Service-workers:PWA背后的英雄](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651237915&idx=2&sn=eee3250b18c3a4b406f96287183e92ef&chksm=bd49779f8a3efe89f2aa1575149f6dd19ec5aea0dba983784bae9f7e0fa171fad6dbda19bd2e&scene=27#wechat_redirect) 12 | - [2020-07-06-flutter究竟有哪些与众不同?](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651237855&idx=1&sn=a64940d5d1fcd69b159808f60afba216&chksm=bd49745b8a3efd4db747ddf96c4e13519c4820f4cc54b5b6a78f7b96c277212709801f0b9b90&scene=27#wechat_redirect) 13 | - [2020-05-14-【图书】PWA入门与实践](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651236564&idx=2&sn=2ab8b984f59e66be74e39d605c8b179b&chksm=bd4971508a3ef846ca847ff5ba5e4d82c7d310456e23aa12c7c7f2fbd04d58e54770a8197073&scene=27#wechat_redirect) 14 | - [2019-07-02-一套代码、多端运行,如何快速上手Flutter?](https://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651232880&idx=1&sn=6072b1f406b0cc36bc3be0e16e7405e3#rd) 15 | - [2019-03-17-【第1557期】带你走进PWA在业务中的实践方案](https://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651231733&idx=1&sn=e55c2f9905606a4930e4961ec4917f44#rd) 16 | - [2019-01-24-【第1515期】让我们在2019年重新认识-Flutter](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651231257&idx=1&sn=d76bd4dfd945072b363c4d3a74fbdba9#wechat_redirect) 17 | - [2019-01-24-【图书】Flutter技术入门与实战](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651231257&idx=2&sn=02dbcb7d05b9d2462f5cc525d7c4b3ad#wechat_redirect) 18 | - [2018-12-16-【图书】PWA开发实战](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651230717&idx=2&sn=73da69aaf659b01ebde21f607c3d4306#wechat_redirect) 19 | - [2018-12-13-【第1475期】企鹅辅导课程详情页毫秒开的秘密---PWA-直出](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651230691&idx=1&sn=de768499f92afd1d026dfa63d00a0685#wechat_redirect) 20 | - [2022-05-21-谷歌发布-Flutter-3!](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651603539&idx=1&sn=8c019b383d03b34e38923cd843ce6954&chksm=80229592b7551c8424067821c7a4f4eae51259cb19a257d7da57764a108d16052234fb52a7ef#rd) 21 | - [2020-12-07-一套代码、多端运行,Flutter是如何实现的?](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651564228&idx=1&sn=6749bbaa48ee4bbb3eb6f641e197183c&chksm=80257f05b752f613a913d93aff60137754e01904abd745ee6a64a0f12502f3012ade2e4ab816&scene=27#wechat_redirect) 22 | - [2020-10-19-一套代码、多端运行,大前端时代,如何用Flutter制霸全平台?](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651563110&idx=1&sn=22ee5ac90eeddb89f613ff47286e6dc6&chksm=802573a7b752fab1d5f1249a79b8ec6f8a3054054fe234e90ecbe4285cb2895c1cb0e3bb402f&scene=27#wechat_redirect) 23 | - [2020-07-06-Flutter-不火,天理难容!](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651560047&idx=1&sn=068a1ce879b6d65bac4808bd1dca755b&chksm=80254faeb752c6b854331fc17e250e7f4a49847345cef21e989ca0eca69849cfd585f2c59903&scene=27#wechat_redirect) 24 | - [2020-01-08-PWA-是移动开发的未来吗?](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651557697&idx=2&sn=ad2fcfb73efe0847f431bc80f6f4ca27&chksm=80255880b752d1967fb225f564f0f1192ebfac3a9649f117b8a3404759ef77a9791ffb2a7a37&scene=27#wechat_redirect) 25 | - [2022-05-15-Android-13-即将推出;Flutter-3.0-来了;马斯克:Twitter-员工的工作量将达到“极端水平”](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247514696&idx=1&sn=2c7a2695a3e39a0e80af0bf913430ffe&chksm=f9520f0bce25861df72cdab6e5375c54c86664a50fe7f078c05cc51e7626b843c08982489660#rd) 26 | - [2021-06-14-深度解读58本地服务Flutter落地实践:两点优化建议,四个避坑经验](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247510024&idx=1&sn=3395a611a858a955c0a6bcb46cfcc8c1&chksm=f9521d4bce25945d2db6cdfb0dd9692924694cc91ed2288b97fca5f20c165241fff0ab7d832f&scene=27#wechat_redirect) 27 | - [2021-05-26-是迄今为止最优秀的-Flutter-版本:Flutter-2.2-正式发布](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247509502&idx=2&sn=da52dd3a975e3b4ef94a1f95b4b1925a&chksm=f95210bdce2599ab485c6214e370cffd7b46ee34f06323d35b7a6fd6fb40d543328905ed728e&scene=27#wechat_redirect) 28 | - [2021-04-23-闲鱼正在悄悄放弃-Flutter-吗?](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247508770&idx=1&sn=419b02bcf6304b7aeba0c1617823abdf&chksm=f9521661ce259f77bd19ee7d1643dff53809a0f564538546797171f0bd3a8acdd697c53dee64&scene=27#wechat_redirect) 29 | - [2021-03-25-斗胆,谈谈我对Flutter的理解](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247507676&idx=1&sn=e120d90aa17c26a1b6f42e61becb63ec&chksm=f9526b9fce25e2895a3c18b194260029d0904c9337c46a0d69f498f70fc0a77d0785f759ad62&scene=27#wechat_redirect) 30 | - [2021-03-19-Flutter-正在被悄悄放弃吗?](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247507487&idx=1&sn=fabfa86e20e7c933d7f0889d79374431&chksm=f9526b5cce25e24aaaf80a0b1ac1f101fb0b41e69c63b924333db68830f2ddce2af25c7b6603&scene=27#wechat_redirect) 31 | - [2021-03-10-2021年,原生永不为奴还是PWA绝地反击?](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247507238&idx=1&sn=3ca28266350487177c92d71ff1275904&chksm=f9526865ce25e173f6a5533dde67f10e68be7def6ccf4e4c29e97932f679687f555a55198f73&scene=27#wechat_redirect) 32 | - [2021-03-08-一套代码、多端运行,Flutter是如何实现的?|-极客时间](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247507147&idx=3&sn=70df990ad005ad17e5684c15134445f4&chksm=f9526988ce25e09ec263b8d69dd714ed53e2a6fab93a57be291684fb7d877ba9eb137dd8c8cc&scene=27#wechat_redirect) 33 | - [2021-03-08-Flutter-将成为未来-Ubuntu-应用程序的默认选择](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247507147&idx=1&sn=cd9613bf4ac5bdf8b24f4a7f81b5209b&chksm=f9526988ce25e09e1b64960df312cec0f8006d03d99a95852fd894e50833bda53bf91616abbe&scene=27#wechat_redirect) 34 | - [2021-03-07-腾讯前员工因违反竞业协议赔偿近百万;Flutter-2正式发布;PS5主机被破解,挖矿算力远超高端显](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247507037&idx=1&sn=a85d0e360502b88a981daaf032a41a54&chksm=f952691ece25e0088f625660fefc872b0e7075f21572cc4b2c6df0382c62eb4e25178fb579db&scene=27#wechat_redirect) 35 | - [2021-03-04-重磅!Flutter-2-来了!](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247507008&idx=1&sn=63f3eeb0ad5490aa93d148e14c7630b2&chksm=f9526903ce25e015bb485e72247b2dfcf3c71dc6805d380731394340accc889e95aeb25b6553&scene=27#wechat_redirect) 36 | - [2021-02-28-华为再申请-“仓颉语言”商标;Flutter-2.0-或于-3-月-3-日发布;美国将建立“无中国大](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247506876&idx=1&sn=0f454e9c39c7815d573030ab11235098&chksm=f9526effce25e7e98846d3de403d50e4c15a7f6e4f7de27d1e6fdc59fe138483c750e40088ec&scene=27#wechat_redirect) 37 | - [2021-01-22-飞猪Flutter技术演进及业务改造实践](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247505884&idx=1&sn=5a128f874ecee93af60729571795dd17&chksm=f952629fce25eb89e2bacbaa13693298a2b5fb6aabba8081c8d8ae558417ad695eefd399ba73&scene=27#wechat_redirect) 38 | - [2021-01-17-飞猪Flutter技术演进及业务改造的实践与思考-|-InfoQ公开课](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247505653&idx=2&sn=3459fde0a3de2f49dfbdb0b46bb0c8f1&chksm=f95263b6ce25eaa0ddc34318695834b0a7e67f019b26d6c2bcf9f7af88eab287e1cccf449fb0&scene=27#wechat_redirect) 39 | - [2021-01-11-Flutter-的性能分析、工程架构与细节处理](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247505520&idx=1&sn=bf7d628818e0b281693a661e24e1955f&chksm=f9526333ce25ea251ec8b68c2f2f59f609c9525a9640223ca3a3f0c48fb8728cde31c35b25ad&scene=27#wechat_redirect) 40 | - [2021-01-06-滴滴DoKit-For-Flutter正式开源,功能及核心实现解读](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247505225&idx=2&sn=fe4548e2eff6610620a49f6ea099d032&chksm=f952600ace25e91c57b34121b075ed782081764894646f4199565d647a84b8114112a5a10ce3&scene=27#wechat_redirect) 41 | - [2020-12-31-如何在Flutter和JavaScript之间创建通信桥](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247505025&idx=2&sn=c3cfe0c986c6ec41fb3dcb0091dbe953&chksm=f95261c2ce25e8d45341ca172111ed43a558f8add79c2305c7a4098b3b49556e57812ff4aa1e&scene=27#wechat_redirect) 42 | - [2020-12-25-Flutter真香!2020大事件全纪录](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247504724&idx=1&sn=21f7ce7ca6f2e28334dfd7e1d6bba27b&chksm=f9526617ce25ef01b1b4a5e68a1c5bc82b4b50f2721b016b29ce3210b7a144b8a7a44e0e97e8&scene=27#wechat_redirect) 43 | - [2020-12-07-纯-Dart-的挑战:美团外卖-Flutter-动态化实践](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247504030&idx=1&sn=0753bcdd8d4e97ca8bfdbed79612b3a8&chksm=f95265ddce25eccb9a587ae049a057532613bf1a1043bd3ae391769348aa6a4de0b60e2642fc&scene=27#wechat_redirect) 44 | - [2020-12-02-如何使用BLoC架构开发Flutter应用](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247503913&idx=2&sn=2655a868efb9ba0725ad44b9f7870264&chksm=f952656ace25ec7c7a4a8f3cfb214fdee54e9f9c2c2c8b2ec496a055b9e8dbc095116ed6ff27&scene=27#wechat_redirect) 45 | - [2020-11-27-Flutter状态State的5种应对方法](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247503755&idx=2&sn=d9b12c39d8c04a5262789a9c60adcadd&chksm=f9527ac8ce25f3de80ec660cefcc4111bae284ae6bafa238e8dc5a21425bc664a79eb5cec54b&scene=27#wechat_redirect) 46 | - [2020-11-19-Flutter-的新功能、Dart-开发工具以及一行神奇的-CSS-代码-|-Google-开发者大](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247503450&idx=1&sn=ede18f3e9d193262d2a076a8572db181&chksm=f9527b19ce25f20fedbd4ce0b423960aec165bb7218adc8e93cda3f32990f1637f03ab5f6e1c&scene=27#wechat_redirect) 47 | - [2020-11-16-2020-Google-开发者大会:Android-和-Flutter-有哪些更新?](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247503376&idx=1&sn=96b1b6b8a7be849892982f54005157a6&chksm=f9527b53ce25f2455a632fd53615a10db4574d6af032d8eab061991a4e843ae8662e5bdd4095&scene=27#wechat_redirect) 48 | - [2020-11-06-为什么说Flutter可能不是下一件大事?](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247503156&idx=1&sn=97308fbbb9ce573bba4747e56fd58850&chksm=f9527877ce25f161e4b9661f8d21cea11254001370ff4fdd26f924e7c03a8de2f51f74466f5f&scene=27#wechat_redirect) 49 | - [2020-10-14-一套代码、多端运行,Flutter是如何实现的?-|-极客时间](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247502259&idx=3&sn=1f61f45712197c8f1d713bac754ca71f&chksm=f9527cf0ce25f5e6f11de889d4840598c95ca856fc70112479f0ee5e1ef9430b2f63aa3efd6c&scene=27#wechat_redirect) 50 | - [2020-09-30-12种Flutter开发工具推荐](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247501538&idx=1&sn=3b21f7e5e7fb1c3f37776c1ca3365abf&chksm=f95273a1ce25fab7b346d985e719a0ce7dacd69ea029f1380dfdfc926102b9fb17ad794eae83&scene=27#wechat_redirect) 51 | - [2020-09-27-前端周报:Flutter实现Windows支持;Windows-XP源代码泄露,微软:正在调查;苹果](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247501308&idx=1&sn=fa15dff33e6317d0f89a9264bcbfd4e4&chksm=f95270bfce25f9a9659c7baaadb092bed8468be99797aa06d97ab5e4a457ed541dcde810bb75&scene=27#wechat_redirect) 52 | - [2020-09-24-Flutter-完成全平台制霸:实现-Windows-应用支持](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247501212&idx=1&sn=62011e3e4bad76e19a673e97139ea42b&chksm=f95270dfce25f9c91a92b02d5ab124f4031c7ca18d658318a1e738e99e2638ee4353f0db54b7&scene=27#wechat_redirect) 53 | - [2020-09-04-Flutter-在阿里淘系的体系化建设和业务实践](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247500411&idx=1&sn=d4b33e3dc0dc3752378112aa61894637&chksm=f9527738ce25fe2e45e49a833d699eca5ec6ad52f074d47af940c6a5f1745a537461f34f0531&scene=27#wechat_redirect) 54 | - [2020-08-06-Flutter-1.20正式发布,新特性解读!](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247498936&idx=1&sn=0823e5dfb49b65c6c6b658c9c60dad9c&chksm=f95249fbce25c0edf7535a214e50eba965a31c52c31efe2e6be5ec5f732777f1226a073b216d&scene=27#wechat_redirect) 55 | - [2020-08-05-Flutter-初学者必读的高级布局规则](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247498872&idx=1&sn=78956b03d6c12c21a427a2550e0bac76&chksm=f952493bce25c02df93f76a7c413683e7d5c969d5725b4a14cf1aa1e40c176bf89454a761c3f&scene=27#wechat_redirect) 56 | - [2020-07-24-InAppWebView:Flutter中WebView的真正力量](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247498274&idx=2&sn=0786e8c1295569d8b534dd81164aaaa0&chksm=f9524f61ce25c677b87a4648446bf7f1c160275ff456f055833a045c3d5a83098c7cf046d59a&scene=27#wechat_redirect) 57 | - [2020-07-13-Flutter全平台制霸再进一步:实现Linux桌面应用支持](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247497858&idx=1&sn=77d0422f3968bd0a29042db030abe9ac&chksm=f9524dc1ce25c4d7ea46c23b42495951c9b48e802cd1fb8a47e4a0912505905462d896d8fc98&scene=27#wechat_redirect) 58 | - [2020-07-10-在Flutter中从头重建DevTools](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247497797&idx=1&sn=f64c97b7ee0c53d11ad3621b6b600057&chksm=f9524d06ce25c410f087d97e3e3a2c5d50a2ea8002395d81117f133d15f3333334f666aaa2de&scene=27#wechat_redirect) 59 | - [2020-06-02-西瓜视频落地-Flutter,给你的避坑指南](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247495716&idx=2&sn=b19971d57ed82dccd7f048d444e5b5d3&chksm=f9524567ce25cc71d6b51d763d535c4243617a10e0c4b518effe749d3ae9044ea903f0de7155&scene=27#wechat_redirect) 60 | - [2020-05-14-贝壳找房移动端在动态化、模块化、Flutter的经验总结-|-GMTC](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247494712&idx=2&sn=b91861c34cde74d1d45650484c309ed7&chksm=f952597bce25d06dfd519c6bf9140d89275933955fdcb491bea426dd7668a13576ed582ff1ef&scene=27#wechat_redirect) 61 | - [2020-05-07-Flutter-1.17重磅发布:多个新增特性及增强,2020年首个稳定版](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247494406&idx=1&sn=23ae59bfb80ba7de9bfcaae79698aed2&chksm=f9525e45ce25d753e83afbada1c98f484eb71980ddebefaa19410d95657e3d1044622ec94a65&scene=27#wechat_redirect) 62 | - [2020-05-05-Flutter有局限,拥抱Swift!优酷Mac迁移Swift实践](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247494388&idx=1&sn=fba5d3cb6d0c2b3ed957f9ac7bd1d9eb&chksm=f9525fb7ce25d6a11461ae300416ef469eca1a76718708df380dad16852d54d5e13b2c66c22f&scene=27#wechat_redirect) 63 | - [2020-04-27-Flutter-2020春季更新](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247494345&idx=1&sn=e8d5a9516e721eb03e209f87df2b1f04&chksm=f9525f8ace25d69cc7f9474cd6f272d3353dc4faa65436ebd2ef2acff2b94dd45399f3273796&scene=27#wechat_redirect) 64 | - [2020-04-26-Flutter-如何精准落地,跨端技术如何选型?-|-GMTC](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247494327&idx=2&sn=d97ca369479fc53f51331d10490b96b5&chksm=f9525ff4ce25d6e2beaa51c0acd9c4755b95f4a70412343e63a4914c3bdcfa8d198f46e55662&scene=27#wechat_redirect) 65 | - [2020-04-20-Flutter-在哈啰出行-B-端创新业务的实践](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247494283&idx=1&sn=2a3a12ba0700bd1d5f7da3e520913a12&chksm=f9525fc8ce25d6de5d466496a5a299da4cc34d21428e52453c95b6528e103b39d331d1ee10b4&scene=27#wechat_redirect) 66 | - [2020-04-13-向新手推荐的2020年Flutter课程和教程](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247494202&idx=1&sn=5f05b473c40ac64b1dc5320ad744b3e2&chksm=f9525f79ce25d66fc93f5520d2ffaed9018707f6d6fbd7d5efd6c2265d9bdfde838dbaf3c924&scene=27#wechat_redirect) 67 | - [2020-04-03-闲鱼Flutter实践与思考](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247494141&idx=1&sn=825cf49469b737a1a65810bfcd3b36ce&chksm=f9525cbece25d5a8d53d2880584cf16078ab4d2cacbd7e47f6bfe87c8f15e5432f8cc47294b1&scene=27#wechat_redirect) 68 | - [2020-03-31-西瓜视频-Flutter-落地经验-|-GMTC](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247494098&idx=2&sn=7f95711f96ba81d4e996f518f9ab9f66&chksm=f9525c91ce25d58759dc4d72d0f7f58295eccd2152155323e43de634dbd97620343eceedb9d0&scene=27#wechat_redirect) 69 | - [2020-03-27-字节跳动为什么选用Flutter:并非跨平台终极之选,但它可能是不一样的未来](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247494078&idx=1&sn=8f47774d232f86c3d267e615b9c0adcc&chksm=f9525cfdce25d5ebf9ac28c106abdd3923f0f779aa68b6ef2e11648297cc24494a48aa17b175&scene=27#wechat_redirect) 70 | - [2020-03-04-PWA对比原生应用:谁更胜一筹?](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247493867&idx=1&sn=4158e538852fb92dc3e4fae8db978fd7&chksm=f9525da8ce25d4bebb1742094dd986e50793491c3386a2c9d49f89439e6f5e3133c77214abbe&scene=27#wechat_redirect) 71 | - [2020-03-04-PWA对比原生应用:谁更胜一筹?](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247493867&idx=1&sn=4158e538852fb92dc3e4fae8db978fd7&chksm=f9525da8ce25d4bebb1742094dd986e50793491c3386a2c9d49f89439e6f5e3133c77214abbe&scene=27#wechat_redirect) 72 | - [2020-03-03-闲鱼在-Flutter上的最新进展和创新](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247493862&idx=2&sn=7d9fd32b0bd49bb50f3791e1e376527a&chksm=f9525da5ce25d4b344686504fd305fd043cfbd4752f5e979f558315964fee54a36102ae452c3&scene=27#wechat_redirect) 73 | - [2020-03-03-闲鱼在-Flutter上的最新进展和创新](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247493862&idx=2&sn=7d9fd32b0bd49bb50f3791e1e376527a&chksm=f9525da5ce25d4b344686504fd305fd043cfbd4752f5e979f558315964fee54a36102ae452c3&scene=27#wechat_redirect) 74 | - [2020-02-28-Weex、RN还是Flutter?聊聊阿里跨平台开发框架选型思路](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247493846&idx=1&sn=cbb5d7837edcb5a7ab4614c080646642&chksm=f9525d95ce25d4837fe9dfbd61d289bcf2d1509496736318b49299cf75d07d1ed7b4b8e47413&scene=27#wechat_redirect) 75 | - [2020-02-28-Weex、RN还是Flutter?聊聊阿里跨平台开发框架选型思路](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247493846&idx=1&sn=cbb5d7837edcb5a7ab4614c080646642&chksm=f9525d95ce25d4837fe9dfbd61d289bcf2d1509496736318b49299cf75d07d1ed7b4b8e47413&scene=27#wechat_redirect) 76 | - [2020-02-27-Flutter在字节跳动的现状与工程实践](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247493836&idx=1&sn=979792491d0abe803c0f00ed412fb0de&chksm=f9525d8fce25d499f5c9815529f7fc25d5e130986a44e430352e375b77d5fe727a8d88f783e1&scene=27#wechat_redirect) 77 | - [2020-02-26-Kotlin-vs-Flutter:谁将成为跨平台开发市场的最终统治者?](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247493824&idx=1&sn=20177d3ef49f59c0a2ea9928b3368ee6&chksm=f9525d83ce25d495ed3b5f94055e5ad34432045db87deddc2a2e2788fb3977b947cf6d935fa3&scene=27#wechat_redirect) 78 | - [2020-02-20-2020年为什么选择Flutter?](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247493782&idx=1&sn=96fc1436fb56cc6658d232295248a587&chksm=f9525dd5ce25d4c32bdc950d70771295288109c6df9b4d27c887533f89c4177c8c03e15ed676&scene=27#wechat_redirect) 79 | - [2020-01-13-字节跳动Flutter架构实践](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247493602&idx=1&sn=86dff6f4151cd3ad4c1c1e7c87357637&chksm=f95252a1ce25dbb77d852e3c935a9ef6cebda845f078d92658d1938ba5a4401d1faff431cb1e&scene=27#wechat_redirect) 80 | - [2019-10-24-美团外卖Flutter容器化生态建设实践](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247492876&idx=2&sn=e1fdff73ba134f7fc5925d142d226640&chksm=f952504fce25d9591296c44668fb6560cbad8459f747de9f6fc374b66a5a7c1791d58f5eeef1&scene=27#wechat_redirect) 81 | - [2019-10-16-腾讯专家实战解读Flutter-for-Web](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247492807&idx=1&sn=4d8e590a63c976ccc4fb97775a2f9097&chksm=f9525184ce25d8929170ca5e2925fd0efdff6e4227f6d536bbab2eac412cb19e37ea344027a0&scene=27#wechat_redirect) 82 | - [2019-10-14-拉美独角兽Nubank:为什么用Flutter做移动开发很酷?](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247492742&idx=1&sn=7fb335c0b64c17d414061328b761dbfb&chksm=f95251c5ce25d8d3d0401ff0688be6e4f14d58463dd9b3d70ce6b03c7b9e84de025b88757f79&scene=27#wechat_redirect) 83 | - [2019-09-27-蚂蚁财富Flutter工程化实践](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247492634&idx=2&sn=d8f36501bb77910f06f9ff38d4eddd75&chksm=f9525159ce25d84fe6cf067611c31707c466ee5fcfa4064e74691b2d4e65436cb9bf01c15b6a&scene=27#wechat_redirect) 84 | - [2019-09-09-SwiftUI对Flutter到底意味着什么?](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247492441&idx=1&sn=b3010bc40f48aa0248d5baa8cfc7da5d&chksm=f952561ace25df0cc4338eae049d1e142543840d15349ee65036fbd76898d847b25e164c25b6#rd) 85 | - [2019-09-06-Flutter和iOS之间的Battle:手势交互听谁的?](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247492417&idx=1&sn=dcc685f06827384e77487264dcd9046d&chksm=f9525602ce25df146cb0d58f0de9ac4951c489178b7b0ce9a437c32e917e87f71fd5697eb696&scene=27#wechat_redirect) 86 | - [2019-09-03-京东技术中台的Flutter实践之路](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247492360&idx=1&sn=126211beb5fd60293ea9ab5bde6acb3e&chksm=f952564bce25df5d6866bbe9b2dca8a3f9b439a19e51ab6557ad892f317be3ff441e892f4720&scene=27#wechat_redirect) 87 | - [2019-08-20-再见,Flutter自带状态管理!你好,MobX库](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247492209&idx=1&sn=ec1743b9fece285687a8857134929ce6&chksm=f9525732ce25de24a564b0b7a61b4794c6d18b5969306cfc300bb56b25465e69271dd6fd71a2#rd) 88 | - [2019-08-15-为什么Flutter还不是最成熟的跨端框架?](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247492161&idx=1&sn=fe2410edb425de2136e22d5d80a5a621&chksm=f9525702ce25de14238d76b6d6ce34111aaa8973dbf5f43b8c7f511f060d86fd9a0e327c08f8#rd) 89 | - [2019-08-06-Flutter并不像你想象中的那么完美](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247492059&idx=1&sn=2fa99747dd8041169417df9d41540d6b&chksm=f9525498ce25dd8ecefdf5aa6876ff5dc191330ed42a72cc943e1a3a4948d90d909a9241704f#rd) 90 | - [2019-07-05-大前端开发者,如何用Flutter制霸全平台?](https://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng%3D%3D&mid=2247491701&idx=1&sn=96969ba02fce4244e1372d73687d0532#rd) 91 | - [2019-06-20-重磅!Flutter-2019年最新进展和未来展望](https://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng%3D%3D&mid=2247491541&idx=1&sn=774717a029004863f60b78763514c743#rd) 92 | - [2019-06-18-Chrome-76-Beta版功能尝鲜:dark模式、轻松安装PWA、隐身模式难检测](https://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng%3D%3D&mid=2247491522&idx=1&sn=d7657e035f499751d219a0de113d2777#rd) 93 | - [2019-05-08-Flutter全平台制霸!新增Web和嵌入式目标平台](https://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng%3D%3D&mid=2247491194&idx=1&sn=0c7b8e68bf80435ef614d5b8552625e5#rd) 94 | - [2019-04-23-移动开发十周年:开源节流,创造新生态](https://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng%3D%3D&mid=2247491051&idx=1&sn=ec6a3e543c543d1f4288295aa1712d37#rd) 95 | - [2019-04-17-移动开发的下半场,iOS开发者应该学什么?](https://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng%3D%3D&mid=2247490991&idx=1&sn=4003001c7b786219751949cca8cd5b0e#rd) 96 | - [2019-03-26-从-SPA-到-PWA:Web-App的下一站在哪?](https://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng%3D%3D&mid=2247490812&idx=1&sn=4c9b898d85f57c1685f93075da68dfda#rd) 97 | - [2019-03-24-从webview到flutter:详解iOS中的Web开发](https://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng%3D%3D&mid=2247490796&idx=1&sn=13ecf30b8ce8aca16d8cbe0a28537e4d#rd) 98 | - [2019-03-20-谷歌新发布的TWA:让你的PWA进入应用商店](https://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng%3D%3D&mid=2247490761&idx=1&sn=efb95ab46a47cebb7e3a8e327b6da544#rd) 99 | - [2019-02-27-Flutter-1.2发布,带来全新的Web开发工具!](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng%3D%3D&mid=2247490557&idx=1&sn=e09c987ddec32590149764347c5b2381#wechat_redirect) 100 | - [2019-02-21-使用Flutter之后,我们的CPU占用率降了50%](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng%3D%3D&mid=2247490514&idx=1&sn=6463e69b68bb88004afee9f77bedb335#wechat_redirect) 101 | - [2019-02-11-爱奇艺开播助手Flutter跨平台Hybrid实践](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng%3D%3D&mid=2247490431&idx=1&sn=e6b42ee0156f09a841c56e53313a6466#wechat_redirect) 102 | - [2019-01-21-使用Flutter一年后,这是我得到的经验](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng%3D%3D&mid=2247490316&idx=1&sn=7e5f81004e944e16f25621aaf7493b22#wechat_redirect) 103 | - [2018-12-05-Flutter-1.0重磅发布,它还想做桌面和Web开发](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng%3D%3D&mid=2247490048&idx=1&sn=7fc792cccb4182ce2a4f0106658c6fb6#wechat_redirect) 104 | - [2018-10-17-Chrome-70正式版发布:Windows端将支持PWA](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng%3D%3D&mid=2247489693&idx=1&sn=0f618c4978d3fcf81144b57eb98b67f2#wechat_redirect) 105 | - [2022-03-12-Flutter-For-Web-编译的两种方案](http://mp.weixin.qq.com/s?__biz=MzA4ODUzNTE2Nw==&mid=2451061634&idx=1&sn=911a2e37893809db54e5ec49e8f64d2b&chksm=87c42292b0b3ab8413a677e321aa3df0fb38dcf8506e91c34ae50366175c8d45de5e37fbcb27#rd) 106 | - [2022-02-18-FlutterWeb性能优化探索与实践](http://mp.weixin.qq.com/s?__biz=MzA4ODUzNTE2Nw==&mid=2451061240&idx=1&sn=2ec665f9c5ee70227066e7e976278e70&chksm=87c420e8b0b3a9fedebbed48ccbc74f2439504c84903cbf437ee50c6784b45688b6a41e2e5e2#rd) 107 | - [2022-02-12-半小时带你入门-Flutter](http://mp.weixin.qq.com/s?__biz=MzA4ODUzNTE2Nw==&mid=2451061051&idx=4&sn=15fb9b3fbad2734a6313460f0a66af4d&chksm=87c4202bb0b3a93d20692d110c2b841198a3e09ee4a0ed627b817489cad590fb441a1de56494#rd) 108 | - [2022-01-23-给-Flutter-上-PR-究竟有多难](http://mp.weixin.qq.com/s?__biz=MzA4ODUzNTE2Nw==&mid=2451060936&idx=2&sn=2552b79d530c5b03005c96e2dc5ef786&chksm=87c421d8b0b3a8ce666b9d6e6ec7d9e0666e9df6cbc499bfd33abcb1d154ed623365c85f03a1#rd) 109 | - [2022-01-21-北海(Kraken)v0.10.0-发布---支持-Flutter-Widget-混合渲染](http://mp.weixin.qq.com/s?__biz=MzI5NjM5NDQxMg==&mid=2247495233&idx=1&sn=af3904c308527c447a50982e7c7b826b&chksm=ec47a582db302c944e41648e5e6cb31025ff365974fd9d9b2feb46af17293aaf77778095b539#rd) 110 | -------------------------------------------------------------------------------- /details/tags/git-svn.md: -------------------------------------------------------------------------------- 1 | :alarm_clock: 更新时间: 2022-06-30 08:00:50。[文章来源](/README.md)、[文章分类](/TAGS.md) 2 | 3 | ## Git、SVN 4 | 5 | 6 | > 关键字:`Git`、`SVN` 7 | 8 | 9 | 10 | - [2022-06-19-【第2645期】善用-Git-的-sparse-checkout-跟-shallow-clone/pull-來提高工作效率](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651255278&idx=1&sn=c5552cd167f7653b36ae05f211885fc6&chksm=bd49286a8a3ea17c659022c7e7c4c40fb3c651e108c4b7a1997168520b090adee79f29d8d1e9#rd) 11 | - [2022-02-14-【第2528期】如何编写-Git-提交消息](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651252607&idx=1&sn=008e47a16385a9b9654aff413a5d145a&chksm=bd493efb8a3eb7edb457f25bdee3363b2191a3211fd41fa8f7ddb659bd85630388d6550461f4#rd) 12 | - [2021-05-30-【第2294期】Gitpod-—-Online-IDE-For-GitHub](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651246445&idx=1&sn=ea83fa3157d15e94b8fd6780ce5a64fe&chksm=bd4916e98a3e9fff1bc706ae8ba1a58fcb5c93d71ae7a08acc3fd0ce4a1a8904e9eb8bc7eac9&scene=27#wechat_redirect) 13 | - [2021-01-06-【第2168期】如何建立GitHub地球仪的](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651243098&idx=1&sn=cba498cc985feff2a0fdd1c2bc5af7e9&chksm=bd491bde8a3e92c828f3ebafa22e57d4af18fc99936b2cc17f723d9596226a9827901ae66d15&scene=27#wechat_redirect) 14 | - [2020-09-03-【第2053期】这才是真正的Git——Git实用技巧](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651239333&idx=1&sn=261438a0714eecc592d7b873fdf59274&chksm=bd496a218a3ee337cfd229952f2b18b9fa7c9de179ffaede71e8ac42bade0a1b3d70333b7638&scene=27#wechat_redirect) 15 | - [2020-09-01-【第2051期】这才是真正的-Git——分支合并](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651239312&idx=1&sn=6694b9cf83f5e994368c70a76865ecf8&chksm=bd496a148a3ee302993ac02dedcca4a13bf470f1a9cefd4a5a18b0234730bca07ce410ae7c60&scene=27#wechat_redirect) 16 | - [2020-02-22-【第1864期】手撕Git,告别盲目记忆](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651235750&idx=1&sn=bdc3d6938b34638c3868d3c69e763f8b&chksm=bd497c228a3ef53478d4c6e9cf3f266f684dc76525917674d0bfa91d50e757837e7545480492&scene=27#wechat_redirect) 17 | - [2020-01-01-【第1823期】Git子仓库深入浅出](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651235364&idx=1&sn=1782b02b50ab6c20957bd770346cb082&chksm=bd497da08a3ef4b606e48b3b7bdd2c69bb3889f84c0025287712d65d4f7f048941091fb529e8&scene=27#wechat_redirect) 18 | - [2019-10-09-【第1739期】为Git仓库里的.idea文件夹正名](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651234198&idx=1&sn=5d9daeba19ec2c359fa1ae785a28457d&chksm=bd4946128a3ecf042fb4815a559924b7b6d6873dcc92d1994a8aa761f132818d6b017859d8a6&scene=27#wechat_redirect) 19 | - [2019-08-24-【第1707期】谈谈-Git-Merge-和-Git-Rebase-的应用](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651233506&idx=1&sn=187334724965f7c51c1cefbed8ff58ff&chksm=bd4945668a3ecc7015ff915b83594883e81195050834fa9f27563ce6e5b5b130245e69fc1bc6&scene=27#wechat_redirect) 20 | - [2019-05-28-【第1623期】30分钟让你掌握Git的黑魔法](https://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651232366&idx=1&sn=442517c7f8360f7d3d52c064de9e1a06#rd) 21 | - [2019-01-30-【第1520期】-Git项目管理](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651231297&idx=1&sn=5d4ee258ddef100d028e14fdd85faf74#wechat_redirect) 22 | - [2019-01-09-【英】Github-宣布-GitHub-Free-以及-GitHub-Enterprise](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651230934&idx=3&sn=8b9b78ecad6457e9a4522b040532c14b#wechat_redirect) 23 | - [2019-01-06-【英】Removing-jQuery-from-GitHub.com-frontend](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651230908&idx=2&sn=2bd887fdff5af33bfbe0055a17c6f4ab#wechat_redirect) 24 | - [2022-01-25-纯-Git-实现前端-CI/CD](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651595915&idx=2&sn=8d0c52ecb080a73702ad0be42b72f93a&chksm=8022f34ab7557a5cddcef2f5fb3424b4580d81bfb219ae782d53d47bad356673e5911e9e0c9e#rd) 25 | - [2021-05-29-Git-各指令的本质,真是通俗易懂啊](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651577123&idx=1&sn=03b9b3f3c06f47ee5173ce3b64f223e2&chksm=80250ce2b75285f4ee61bd8340a172486aaea9dedd191ef4a32c91dc8eaed61635cdc9fcd1f1&scene=27#wechat_redirect) 26 | - [2021-05-17-6-个对所有-Web-开发者都有用的-GitHub-仓库](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651575802&idx=2&sn=42f22a3b917986f0046efcbb58e5f610&chksm=8025023bb7528b2dbc753c6cab6505113f6c1f3a624f6756195189643fdaaa6c216796ad30ef&scene=27#wechat_redirect) 27 | - [2021-04-30-摸鱼社区炒饭前端开源,大家快来-GitHub-Star-一波呀](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651575234&idx=2&sn=f617874affcb39bed8d4beaf9d1179e5&chksm=80250403b7528d158d6cabccb61ac521b06a5b10e7923412f0bafdb7457fabcc5b5d8da8e131&scene=27#wechat_redirect) 28 | - [2020-12-31-两天狂揽-4k+-Star,抢茅台脚本霸榜-GitHub](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651566154&idx=1&sn=497bfe3f734122bc1b559d4370e25ef1&chksm=8025678bb752ee9d9996c8c196f969e90a12b6e6c49a0f54c26164602454a32f96b8ac3c92f4&scene=27#wechat_redirect) 29 | - [2020-12-16-下载神器被-Github-下架后,作者写下了这篇回应](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651564617&idx=3&sn=8deb0c7004074cde3859c5ca5e76ba24&chksm=80257d88b752f49eed1ba28b3012dcd6d14d135b4b3aea93176ec63d4f861cbca3db5d99a82e&scene=27#wechat_redirect) 30 | - [2020-12-13-GitHub-月榜第-3,微软的老照片修复工具火了](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651564551&idx=2&sn=33a732e8f1a2b61406611da250e0b64e&chksm=80257dc6b752f4d0368924c9ba496a19ee67451e06901db36be8671f0dc3b9984d7aa9bc520b&scene=27#wechat_redirect) 31 | - [2020-12-08-GitHub-月榜第-3,微软的老照片修复工具火了](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651564352&idx=2&sn=fce66dc465f2f210170146cb5c0d7893&chksm=80257e81b752f797696aeac85e849f022cc1fdd21e61475ffa8c5ae9efe265a1cc7ca3292036&scene=27#wechat_redirect) 32 | - [2020-11-24-GitHub-霸榜!比-ping-强大的-gping-一天拿下-2.5k-Star](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651563906&idx=2&sn=aff0aa804ddf824c79d362ec4755c8bc&chksm=80257043b752f955b3d195635f037d5f43c8b4b70f69bc2a7fc335d127da93c70b4983fc0088&scene=27#wechat_redirect) 33 | - [2020-06-02-Github系列,是道全选题么?](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651559033&idx=2&sn=c7ce511ae2f9762579aa932b6701a7bd&chksm=802543b8b752caae44fabab1c892ceeae30efe067b1ebe63832610f805eba0331b8c34fb7d50&scene=27#wechat_redirect) 34 | - [2020-06-02-这些热门GitHub代码库,每个前端开发者都应该收藏](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651559033&idx=1&sn=7cb2b0d10d3306c689707acaa64d7d0e&chksm=802543b8b752caaec8923f4d4f8edbf61aeeacf62f4fabf67d569cbdec28c2bc7a1c461f5622&scene=27#wechat_redirect) 35 | - [2020-05-11-你可能已经忽略的-git-commit-规范](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651558392&idx=2&sn=44aef758d7538a00e48ebb0ed2751dc9&chksm=80254639b752cf2fcfb0b6e3bc5bcabb07a26d322a031a74a3c317a1db59b9c17103121e5b3d&scene=27#wechat_redirect) 36 | - [2022-05-22-jQuery已“死”?Gitee关闭部分开源仓库;微软宣布为员工加薪应对通胀;蔚来又上市了;小鹏回应解约应届生](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247514799&idx=1&sn=d41eee6fa0003633218c783cf5136f44&chksm=f9520fecce2586fa340d5649a74f4d0f2f3aced661634165967469664283128793d6d15137b6#rd) 37 | - [2021-05-02-GitHub使用新标头屏蔽谷歌的FLoC追踪;腾讯被南山法院强制执行25元;明尼苏达大学教授向Lin](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247508985&idx=1&sn=1e021e7bd352729a6876c76b5d3bf9bc&chksm=f95216bace259fac06c37f9c54d68928b46d97fee4183e1badea992a78c98820ee2ec581dc0c&scene=27#wechat_redirect) 38 | - [2021-01-25-日常使用Git,这些问题你遇到过吗?|-活动推荐](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247505990&idx=3&sn=4b3a8b9c7d4bd91a5026153ad071f28b&chksm=f9526d05ce25e413c9a2dfb4e8f214fbcf558a4c0bfc90e9e4d4631d76f4c061f3cea7c4a8a4&scene=27#wechat_redirect) 39 | - [2021-01-22-程序员必备的10大GitHub仓库](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247505884&idx=2&sn=3f9d54196fa337a8a0ea082d8f099d95&chksm=f952629fce25eb89c7a02c24084df2d61d5b7cfd46e06539ea6fb2fb03c6cc44cbb80d075ca9&scene=27#wechat_redirect) 40 | - [2020-12-27-前端周报:VS-Code的Issue列表被黑产“攻陷”;国产开源软件“购买”GitHub星标被批评;](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247504787&idx=1&sn=759f17323792473aba439d8f5c446bad&chksm=f95266d0ce25efc64129b71726281f9bb6d62b8f6d784ead25a5e71a65a16f169ddf0056bdc2&scene=27#wechat_redirect) 41 | - [2020-11-08-前端周报:GitHub疑似源代码泄露;蚂蚁集团上市将推迟半年以上,官方致歉;苹果11.11再次召开发](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247503203&idx=1&sn=676ebf654de0bcb2f0857e672be0c7b8&chksm=f9527820ce25f136e9f960cf6f42f7d65f8b2b0b13bf736633513632fe904ea631c99b2d59bf&scene=27#wechat_redirect) 42 | - [2020-07-20-你的-Git-代码已成功入驻北极圈,至少保存-1000-年](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247498067&idx=2&sn=a63b60063962de77f7099f3cc4b6da33&chksm=f9524c10ce25c50643114f8d857ddfeb03b5e88ed6beae879223d03e49c1289e2265a7dbc03b&scene=27#wechat_redirect) 43 | - [2020-05-15-开源项目被-GitHub-要求下架:上游项目闭源了?](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247494738&idx=2&sn=daaac9cedd50a63d5c804746505036c9&chksm=f9525911ce25d0076915eed31e53fccbbc9b1d6f28c9b896bbff00bae2c9b60b7f641c020aa0&scene=27#wechat_redirect) 44 | - [2020-02-10-中国开源前端为王?GitHub-5.4亿条日志背后的数据故事](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247493720&idx=1&sn=10bb747764cb1e1cec2ab9ee279bfd3d&chksm=f9525d1bce25d40ddfffe101f59612538a5e95dcdf38e70545dbeb23a83a57c8f80afc037b88&scene=27#wechat_redirect) 45 | - [2018-11-09-GitHub-仓库数量破亿了!](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng%3D%3D&mid=2247489835&idx=1&sn=9f5a5364a107102847380bfcd29f5395#wechat_redirect) 46 | - [2022-04-09-三心给大家分享一个阅读Github项目代码的小技巧~](http://mp.weixin.qq.com/s?__biz=Mzg2NjY2NTcyNg==&mid=2247486076&idx=1&sn=46ae2cd78ca5803765ec848724558317&chksm=ce461fedf93196fb4ce8ed281f42b490859c4d288e977c71940369a7365f4bf270b4a353b3d4#rd) 47 | - [2022-05-19-如何编写-Git-提交消息](http://mp.weixin.qq.com/s?__biz=MzUxNzk1MjQ0Ng==&mid=2247506957&idx=2&sn=02966fa0aa9884da75a2c7b8b1bcd85e&chksm=f992dadccee553ca93b5bd77bd4223afb74a9dce1cfdca7396986a453debd32f7ab1a2cefa27#rd) 48 | - [2022-05-10-Git-各指令的本质,真是通俗易懂啊](http://mp.weixin.qq.com/s?__biz=MzUxNzk1MjQ0Ng==&mid=2247506726&idx=1&sn=2d28fac0728a15939fe823aeb76a0342&chksm=f992ddf7cee554e1a43c3d4d0ffc7d62e019e99c1919546741e5646aad90e50df2f201357006#rd) 49 | - [2022-05-05-Github访问速度慢的解决方案总汇](http://mp.weixin.qq.com/s?__biz=MzUxNzk1MjQ0Ng==&mid=2247506577&idx=2&sn=98fde3b095ddc656d98f345c200848c9&chksm=f992dc40cee55556e8fd58ca1ebfce81406fd17b61da197c9ec37c0230fac7d733781c419f72#rd) 50 | - [2022-04-25-「6.1K-Star-项目推荐」github主页”快速装修“神器](http://mp.weixin.qq.com/s?__biz=MzUxNzk1MjQ0Ng==&mid=2247506335&idx=1&sn=10371a613870bf32fdb6b1fc4f04b6e0&chksm=f992df4ecee5565881b65cc9d70ea81931e41ee4aaa6048ffc02e6a93e0e22463a2af15c05ac#rd) 51 | - [2022-02-11-每个开发人员都应该知道的-10-个-GitHub-仓库](http://mp.weixin.qq.com/s?__biz=MzUxNzk1MjQ0Ng==&mid=2247503135&idx=2&sn=7934eb101ab454f02a2f9b648169330a&chksm=f992cbcecee542d8da633070339dfaeaf407260fe61b3eaf14872fc00d079f2c627a47ecbd04#rd) 52 | - [2022-01-09-如果你还不会用-git-回滚代码,那你一定要来看看](http://mp.weixin.qq.com/s?__biz=MzUxNzk1MjQ0Ng==&mid=2247502488&idx=1&sn=c663ce5e11a0434fc051d2b0bf3312d2&chksm=f992cc49cee5455f6d17c6c5349f5c347a1444cfb4c2eda4757d65773ea5513ea828b27eabbe#rd) 53 | - [2017-05-18-如何实现一个-Git-Diff-解析器](https://fed.taobao.org/blog/2017/05/18/how-to-display-git-diff/) 54 | - [2020-04-27-git-cherry-pick-教程](http://www.ruanyifeng.com/blog/2020/04/git-cherry-pick.html) 55 | - [2019-12-24-如何撤销-Git-操作?](http://www.ruanyifeng.com/blog/2019/12/git-undo.html) 56 | - [2019-12-22-GitHub-Actions-教程:定时发送天气邮件](http://www.ruanyifeng.com/blog/2019/12/github_actions.html) 57 | - [2019-09-12-GitHub-Actions-入门教程](http://www.ruanyifeng.com/blog/2019/09/getting-started-with-github-actions.html) 58 | - [2019-04-21-GitHub-OAuth-示例教程](http://www.ruanyifeng.com/blog/2019/04/github-oauth.html) 59 | - [2017-04-10-用-Git-钩子进行简单自动部署](https://jelly.jd.com/article/6006b1045b6c6a01506c87e1) 60 | - [2015-11-17-Git常用操作总结](https://jelly.jd.com/article/6006b1025b6c6a01506c877c) 61 | -------------------------------------------------------------------------------- /details/tags/html.md: -------------------------------------------------------------------------------- 1 | :alarm_clock: 更新时间: 2022-06-30 08:00:50。[文章来源](/README.md)、[文章分类](/TAGS.md) 2 | 3 | ## HTML 4 | 5 | 6 | > 关键字:`HTML`、`标签`、`meta` 7 | 8 | 9 | 10 | - [2021-05-21-【第2285期】让-Instagram.com-变得更快:提前刷新和渐进式HTML](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651246144&idx=2&sn=8f2de94754e4b42e2e07b2f06835272a&chksm=bd4917c48a3e9ed2ec3678b0ae959f93feb29b630bb8d78e89d378beffd34eaa75549c4bbdc5&scene=27#wechat_redirect) 11 | - [2021-02-24-【第2207期】为git仓库自动生成changelog-html页面](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651244082&idx=2&sn=21f225224d71bb44169ac4b03e71749c&chksm=bd491fb68a3e96a083f40b1aa69f1ed1c7c34f1ce01356dfffe65cd059a3dd1b9a0a13fbd207&scene=27#wechat_redirect) 12 | - [2020-06-02-【英】HTML-mailto-link](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651237042&idx=3&sn=79cde14e9196fc85df190acb65b127f2&chksm=bd4973368a3efa206a38e18653ba4e24281c2694e19f660edf73fb40a98f5d33f20827167180&scene=27#wechat_redirect) 13 | - [2020-02-16-【第1858期】通过HTML属性可改善用户的双重身份验证体验](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651235715&idx=1&sn=a7e364236e694b774c671991d657f389&chksm=bd497c078a3ef5113a8d7a2b0d5fbeef13693d188978343b601701962a3086dbf5d7b4e70dce&scene=27#wechat_redirect) 14 | - [2021-03-03-为什么要用-picture-标签代替-img-标签?](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247506985&idx=2&sn=2d52b27efe0d52fc3eb2a9761ad0c15e&chksm=f952696ace25e07c37b85512410826383a3f6ea1667b4fbfc1245819b7ccb91347cb58292090&scene=27#wechat_redirect) 15 | - [2021-02-26-容易被忽略的5个HTML技巧](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247506806&idx=2&sn=f088238e232600ebabbfc44390c394aa&chksm=f9526e35ce25e723db74e4fd001405765e15ae74ee3853799f4ec70a0f8dc6ca381be7b7a457&scene=27#wechat_redirect) 16 | - [2019-08-26-HTML规范未来还需要哪些新内容?](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247492269&idx=2&sn=6bfd6cee50f9ec6b96ab0ba7592939cc&chksm=f95257eece25def86b3ad56aefa87f8c7c1f5dbbc1760ebc5fbbd146d346a05629c1e8342005#rd) 17 | - [2022-05-02-有意思的面试题:统计页面出现次数前三的标签](http://mp.weixin.qq.com/s?__biz=Mzg2NjY2NTcyNg==&mid=2247486188&idx=1&sn=f330456718f5bba6d772a11ed78149b1&chksm=ce461f7df931966bc21360053c727ef11bc8e850eb2566c041db661c9a509916bb30167e2540#rd) 18 | - [2022-02-11-为什你应该使用picture标签而不是Img标签](http://mp.weixin.qq.com/s?__biz=MzA4ODUzNTE2Nw==&mid=2451061006&idx=1&sn=0a6225ad1c7fa7db92f4f1421c56f704&chksm=87c4201eb0b3a908673b3ddcbeb562039935f2e5268e74903eb32a86afad6d3d5224009277b3#rd) 19 | - [2022-01-05-为什你应该使用picture标签而不是Img标签](http://mp.weixin.qq.com/s?__biz=MzA4ODUzNTE2Nw==&mid=2451060776&idx=1&sn=ae23a10a1f0dfb3983bbca0c666f5e07&chksm=87c42138b0b3a82e5fe52bcfd5a68be0bbf3d0a2815c9fdf433448d686adc4f4528505eaacb0#rd) 20 | - [2022-02-04-HTML-inputmode与iOS-Android软键盘类型测试](https://www.zhangxinxu.com/wordpress/2022/02/html-inputmode-keyboard/) 21 | - [2021-11-14-密码强度效果最佳实现一定是HTML-meter元素](https://www.zhangxinxu.com/wordpress/2021/11/html-meter-password/) 22 | - [2021-09-24-HTML-slot-插槽元素深入](https://www.zhangxinxu.com/wordpress/2021/09/html-slot-dom/) 23 | - [2021-09-14-借助HTML-ping属性实现数据上报](https://www.zhangxinxu.com/wordpress/2021/09/html-ping/) 24 | - [2021-07-26-为什么HTML-元素很少见人使用?](https://www.zhangxinxu.com/wordpress/2021/07/html-picture/) 25 | - [2021-05-30-666,看hr标签实现分隔线如何玩出花](https://www.zhangxinxu.com/wordpress/2021/05/css-html-hr/) 26 | - [2020-10-11-HTML-enterkeyhint设置iOS/Android键盘enter键](https://www.zhangxinxu.com/wordpress/2020/10/html-enterkeyhint-ios-iphone/) 27 | - [2020-01-31-HTML全局属性列表大全](https://www.zhangxinxu.com/wordpress/2020/01/html-global-attributes/) 28 | - [2019-07-19-HTML静态页面原型交付工具“魔卡”简介](https://www.zhangxinxu.com/wordpress/2019/07/html-mockup/) 29 | - [2019-07-07-HTML-audio基础API完全使用指南](https://www.zhangxinxu.com/wordpress/2019/07/html-audio-api-guide/) 30 | - [2019-06-15-详细介绍HTML-favicon尺寸-格式-制作等相关知识](https://www.zhangxinxu.com/wordpress/2019/06/html-favicon-size-ico-generator/) 31 | - [2019-06-03-HTML-rel属性值释义大全](https://www.zhangxinxu.com/wordpress/2019/06/html-a-link-rel/) 32 | - [2018-09-01-借助wbr标签实现连续英文字符的精准换行](https://www.zhangxinxu.com/wordpress/2018/09/html-wbr-word-break/) 33 | -------------------------------------------------------------------------------- /details/tags/server.md: -------------------------------------------------------------------------------- 1 | :alarm_clock: 更新时间: 2022-06-30 08:00:50。[文章来源](/README.md)、[文章分类](/TAGS.md) 2 | 3 | ## 服务端相关 4 | 5 | 6 | > 关键字:`Nginx`、`Docker`、`Server`、`GraphQL`、`REST`、`gRPC`、`Rust`、`Java`、`Python`、`PHP`、`Golang`、`Django`、`SSR`、`SSG`、`MongoDB`、`JWT`、`SSH`、`rsync`、`Bash`、`Tmux`、`命令`、`数据库` 7 | 8 | 9 | 10 | - [2022-06-29-【第2655期】携程基于-GraphQL-的前端-BFF-服务开发实践](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651255983&idx=2&sn=b194a771eba95537896ff441a411c9d7&chksm=bd492d2b8a3ea43d6b6d1057320b41196add6c18b93fb863ffb3d425fdb4ea1bd8519d16eb79#rd) 11 | - [2022-05-06-【第2604期】前后端接口规范---RESTful-版](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651254080&idx=1&sn=3ab86ecf19551ab696ee4d3f19da4f52&chksm=bd4934c48a3ebdd2070fdaf9880bb22cac6b344ad234b337153516d7d0df6899f4c67ffe9837#rd) 12 | - [2022-04-27-【图书】Docker实战派---容器入门七步法](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651254038&idx=2&sn=bc3af86be1c17c27873da39dc82c9d46&chksm=bd4934928a3ebd845481515612c52fd0957f1daeb3c9024715739ad332766a82a03469201ca6#rd) 13 | - [2022-03-06-【第2548期】前端SSR的落地实践](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651253087&idx=1&sn=9e473d6df3fbe964e53659211a57346c&chksm=bd4930db8a3eb9cd8acb0e2209218ea2861d037a21ad6bc6d1c2c9d607898ea4f43b18eac637#rd) 14 | - [2021-05-18-【招聘】深圳普渡科技招聘Web前端开发工程师、Golang后端开发](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651246091&idx=2&sn=e3e52d08ae828c5d27deb98d1d09d85b&chksm=bd49178f8a3e9e99ba902c8be73bcd624f7745f5a5d7fbcd11afc814af98d012e9c039790ea4&scene=27#wechat_redirect) 15 | - [2020-05-19-【第1949期】-代码之上:落地-GraphQL-背后的故事](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651236657&idx=2&sn=7ce5765595a8b8be4d56d662684bf658&chksm=bd4970b58a3ef9a3fbc23c87e4cbfd08efcac98acbecc626a82b0ffaf6218379ddf1cdb2fd1c&scene=27#wechat_redirect) 16 | - [2019-10-27-【第1757期】Server-X:一款可能提升你十倍工作效率的工具](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651234367&idx=1&sn=0a456cc2b627a6e33791380ddc7cb319&chksm=bd4979bb8a3ef0ada6e0e6407e64cc9db7ac8456b9bd9c4ed4984c81c2bbe8588437dcf80004&scene=27#wechat_redirect) 17 | - [2019-09-05-【第1717期】Nginx入门指南](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651233689&idx=1&sn=f92f467cdce332c7bf843e28107c33b8&chksm=bd49441d8a3ecd0b9aa74fad180ba033c4079f6181757862f09c80521f21760c3464729c4b1d#rd) 18 | - [2019-07-29-【第1683期】GraphQL-BFF:微服务背景下的前后端数据交互方案](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651233171&idx=1&sn=6f2550d9433dbb75d52d0aa718ef8801&chksm=bd4942178a3ecb016a4fb938f20acbe7481b17929fc8ceeedde0a018e73536badc341421de5e&scene=27#wechat_redirect) 19 | - [2019-04-22-【第1590期】GraphQL和Thrift在Airbnb架构中的配合使用](https://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651232075&idx=1&sn=316b199dc87587fffcf8b80f1704201e#rd) 20 | - [2019-03-14-GraphQL-从入门到实践](https://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651231695&idx=2&sn=1d3bef2add023e2b9e4ca2e33c097ac4#rd) 21 | - [2019-02-17-【第1529期】GraphQL入门指南](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651231441&idx=1&sn=bd2dbaa1e192a63735b475b6a351ae99#wechat_redirect) 22 | - [2019-01-30-【招聘】富途证券诚招前端开发-和-PHP开发(14k~28k)](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651231323&idx=3&sn=f0c1e814148ea709f88d79976ecd136a#wechat_redirect) 23 | - [2018-10-24-【招聘】深圳零一裂变招PHP、前端](http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ%3D%3D&mid=2651230137&idx=2&sn=1f7932c8da5b94de4b9a92c655a642da#wechat_redirect) 24 | - [2022-05-04-Git-不要只会-pull-和-push,学学这-5-条提高效率的命令](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651602996&idx=1&sn=22514ea9ee0473cca264da61e0fcdea1&chksm=802297f5b7551ee31a2f8d878b88978b420325942557cd7f07fd7824817f69b3e76931c40c7b#rd) 25 | - [2022-04-24-不记得-Git-命令?-懒人版-Git-值得拥有!](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651602407&idx=2&sn=833ffb029cb5e90cd6e21fca4a005bbf&chksm=8022ea26b7556330c2ea0174e83766f4153c4ca77ab26e6794698e8a271803d15c6fb27e0230#rd) 26 | - [2021-04-01-万字总结,体系化带你全面认识-Nginx-!](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651573081&idx=2&sn=e3541ba364f1d40384b292704896452b&chksm=80251c98b752958e1cfc60b78546fa76160e229a27efac3cd22adb7645d868436daf2c6e1a9c&scene=27#wechat_redirect) 27 | - [2021-02-18-GraphQL-实战篇之前端+后端](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651570722&idx=2&sn=73a791e6dc29666a74d4763579ce4983&chksm=802515e3b7529cf532e28013a553b0249748e89d09b1189ecaed28c216ded4036e34b691a993&scene=27#wechat_redirect) 28 | - [2021-01-21-我为什么要放弃-RESTful,选择拥抱-GraphQL](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651569116&idx=1&sn=030d3748f6b62a61640952648fa042f1&chksm=80256c1db752e50b3d6dce522dc7f0ce51463039fd89ae7633627273b6069e6a577fe7a62260&scene=27#wechat_redirect) 29 | - [2020-12-17-MongoDB-首席前端工程师的技术栈(2020版)](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651564638&idx=1&sn=a5881543ceee0f5a434b6dae4ce9b81e&chksm=80257d9fb752f48994f3cdfd97e7c3767f14ec526cd9036f2a4c9e3062f4cf2b21002d6a25ac&scene=27#wechat_redirect) 30 | - [2020-10-10-谁说前端不用懂,手摸手-Docker-从入门到实践](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651562919&idx=1&sn=e104ff4e6d1f4ea88f419244bb9da608&chksm=80257466b752fd70be127c910e1d7ef8e36b573e9e4a96f3371d4f890c6e49b9e53699b9c59c&scene=27#wechat_redirect) 31 | - [2020-09-23-搞懂-JWT-这个知识点](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651562281&idx=2&sn=daa857f0b3eec99a1f73059c39bcc260&chksm=802576e8b752fffee4b630aa80349fe996bb6f770db60fd28656d66b14837b1c0699c3296f2d&scene=27#wechat_redirect) 32 | - [2020-08-29-前端工程师不可不知的-Nginx-知识](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651561785&idx=1&sn=52fdaf96dd905de633fb2b30fc9a9cb5&chksm=802548f8b752c1eedab8cb867913637dd1297d1cd54b54f6581f2ef23febc56c872ec43df921&scene=27#wechat_redirect) 33 | - [2020-07-22-整理几个超实用的前端提效-shell-命令](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651560778&idx=2&sn=ebe671509962fc0c4d431aac785658f7&chksm=80254c8bb752c59ddb333d5ee9c530364630c507c8266bd9026e53759bd15e56c085972e3c9b&scene=27#wechat_redirect) 34 | - [2020-06-23-一文快速入门-GraphQL](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651559620&idx=2&sn=05586bff4130db36c81b6ea7bab6faff&chksm=80254105b752c813b291b7f648c3f4f0bf1a2537ea91ee3d3b0b4dac213d5ba990bdaa1aab8c&scene=27#wechat_redirect) 35 | - [2020-05-12-小姐姐用动图展示-10-个-Git-命令](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651558403&idx=1&sn=2a7a333f9e03fa92727f04cc9c70dccb&chksm=802545c2b752ccd477769202388c5b1d84897f63adf6fe613ea66062200b599d34206e9360a8&scene=27#wechat_redirect) 36 | - [2020-03-14-前端高级进阶:使用-docker-高效部署你的前端应用](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651558021&idx=1&sn=63490d2290e632ce0be029744cd0f291&chksm=80254744b752ce525b835d37085524bd2240f702954dda3911313ec25d0b41b1f5b4fba2f436&scene=27#wechat_redirect) 37 | - [2019-09-02-面试加分项之-Nginx-反向代理与负载均衡](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651557010&idx=1&sn=11ef5ff952219d6dddec7e40b830f822&chksm=80255b53b752d2458c8dc8fde12d35804e18499e20b8e4d57924ce700d2c7e45e589e89c6573#rd) 38 | - [2019-08-15-GraphQL-入门看这篇就够了](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651556913&idx=1&sn=6118d988598b1b2a9eb48f0831894396&chksm=80255bf0b752d2e6b281df72953db5249443830c36adfca3d90aece1379980e8a0fe61f9d968&scene=27#wechat_redirect) 39 | - [2019-04-18-前端开发者必备的-Nginx-知识](https://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA%3D%3D&mid=2651556250&idx=1&sn=07ae8424d4087a11a1fbacc54b1581db#rd) 40 | - [2019-03-27-面试加分项之-Nginx-反向代理与负载均衡](https://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA%3D%3D&mid=2651556116&idx=1&sn=cfca7b893bf20faf3f1808c592928487#rd) 41 | - [2019-02-15-nginx-反向代理和负载均衡策略实战案例](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA%3D%3D&mid=2651555878&idx=1&sn=dffbd69d17c0ff126acd2d9d5f5123bd#wechat_redirect) 42 | - [2018-12-29-GraphQL-前端开发的利剑与桥梁](http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA%3D%3D&mid=2651555621&idx=1&sn=961a4d8c643c486f1e457f2a6d58da65#wechat_redirect) 43 | - [2022-06-10-PyScript:让-Python-在-Web-中跑起来](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247515246&idx=1&sn=603440ed780da2ed245599c5cc243e0c&chksm=f952092dce25803b83e3f8502801129c65ab2e1f241bd4c5d6e915da7e490019799600461cb3#rd) 44 | - [2021-12-22-15分钟,华为AppGallery-Connect云数据库从入门到精通](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247512265&idx=2&sn=85b1587494a42933d43488183919086a&chksm=f952058ace258c9c552bc608a51b0590812de58cdaa703e1b36da451c4597f22df1105c4b61b#rd) 45 | - [2021-06-30-Kotlin-能追赶上-Java-的步伐吗?-|-极客时间](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247510404&idx=3&sn=facae2a7795a1e7d0a046e16d4c6ccef&chksm=f9521cc7ce2595d106e1138caef9b0540fac19c44a01cbc74b17d43d2ec7f39cab071547a6db&scene=27#wechat_redirect) 46 | - [2021-05-14-我们如何将-Pinterest-的-iOS-应用大小减少-30%-以上](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247509193&idx=2&sn=90a909f3b7f1553adb7e36e6890e8340&chksm=f952118ace25989c4870e192c593a37252266348519f57cabf97c03d1ef50b883cdab4c60175&scene=27#wechat_redirect) 47 | - [2021-05-10-为什么我使用-GraphQL-而放弃-REST-API?](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247509132&idx=2&sn=4c16144a04a6f07e79f9766d943c7ec2&chksm=f95211cfce2598d9511559d40cc5d0628326b833c1cc4aab8d86d1f81cbdbde81dc3852231c4&scene=27#wechat_redirect) 48 | - [2021-04-26-2021-年,Java-开发者最值得学习的-14-项技能](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247508854&idx=2&sn=5a3eecb241ea5de507445f6993340c4e&chksm=f9521635ce259f236ce155c71f287997a82ebafdc263128583d6f3bdd45b972f3dea2f29d7ed&scene=27#wechat_redirect) 49 | - [2021-04-19-从14s到4s,我如何将-MacOS上的-Rust-增量编译时间减少70%?](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247508631&idx=1&sn=48d969c5599156b1187510cf079c9f92&chksm=f95217d4ce259ec2180189206f87620333170a94bb4a3d995296cb37ebc5d18b72c3021ed9a1&scene=27#wechat_redirect) 50 | - [2021-01-29-Rust不适合开发Web-API](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247506056&idx=1&sn=d95dbff1ba33732917be53c53be75696&chksm=f9526dcbce25e4ddd52adf1d8714f0045239f3e7aa6f5f7858b83d162ff3602ba379e5012ca4&scene=27#wechat_redirect) 51 | - [2020-12-04-GraphQL是API的未来,但它并非银弹](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247503968&idx=1&sn=2472894308184f535c83ecb0965915e5&chksm=f9526523ce25ec355a1d802014755c1510601ab6083578992982d8aefaa8cb72bceebe98b1b5&scene=27#wechat_redirect) 52 | - [2020-11-15-前端周报:苹果发布macOS-Big-Sur,可运行原生iOS应用;Python放弃退休;前微软员工](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247503358&idx=1&sn=aead9013256f0977c38ec1927bf814eb&chksm=f95278bdce25f1ab05b9f303360acb37fa74a7cca321c702f6e37b65049b18cf5adc6618a9c6&scene=27#wechat_redirect) 53 | - [2020-11-02-推荐-7-个-Python-上手实战项目-|-活动推荐](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247503090&idx=3&sn=1825225124d599ace2e635639a68ef6d&chksm=f95279b1ce25f0a789422f66351a1b419f0074eb109e4d18bbf5298eb368e1255ed6b0574eea&scene=27#wechat_redirect) 54 | - [2020-09-29-PHP与.NET统治Web开发世界的八个理由](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247501380&idx=1&sn=3f4617ef6cdcc4367cb7ba396b191b6c&chksm=f9527307ce25fa119f1e0a44f06b7ba6f14eb4bd355bbf26fa063c325b3550933449d8f86be1&scene=27#wechat_redirect) 55 | - [2020-09-21-「有奖调研」你的服务器操作系统和数据库要升级/迁移吗?|-活动推荐](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247501140&idx=3&sn=c5ce4c4a2a3a87481aabcd24d0de3d38&chksm=f9527017ce25f901fad8a892b625f8591e972a259835ca65540219bd3458485687ab43977ede&scene=27#wechat_redirect) 56 | - [2020-09-21-那些害死Haskell的,也会害死Rust](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247501140&idx=2&sn=0e9140d2fbd4d4af828baa533e6cf27a&chksm=f9527017ce25f9015659622d340e5d4df572d7c6ba80a92129afbe0602d971e98c4ab4ffe26d&scene=27#wechat_redirect) 57 | - [2020-08-25-写Java代码时会踩哪些坑?2.2-万字干货总结](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247499909&idx=2&sn=2ad363408c10e6ade269924ab229dc07&chksm=f95275c6ce25fcd07e52220d9b2da970a4c3876e66afdfa13ab7eca481da2bb6af5819bcdb2b&scene=27#wechat_redirect) 58 | - [2020-08-17-Java的新未来:逐渐“Kotlin化”](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247499455&idx=2&sn=e94009574738b767226c7859899c2e38&chksm=f9524bfcce25c2ea0004dbde43a7e25bebd8894c626fc25d71762ce15e6f4cac2ff88b31a485&scene=27#wechat_redirect) 59 | - [2020-07-17-GraphQL两年实战避坑经验](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247497990&idx=1&sn=ee7d71a3a868dbe8a8ade60ac7eb8c90&chksm=f9524c45ce25c553cb581015574da14b0bbae9d422abdfeb25dc8f585ece889efaebabfe48ac&scene=27#wechat_redirect) 60 | - [2020-07-02-用了6个月的GraphQL,真香!](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247497368&idx=2&sn=77d9ddde45132f74aa001705741292f4&chksm=f95243dbce25cacd56be33922accef4a468dc52d88222e7b9b243c04e9bbd9c8033396229b3d&scene=27#wechat_redirect) 61 | - [2020-05-08-在这里,NGINX-创始人-Igor-Sysoev-将亲述-NGINX-的诞生史](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247494412&idx=3&sn=200b596a3c20c1a819892f2e5348cc15&chksm=f9525e4fce25d75956dfeae982fc0e4b070222cfa576e3dcc217d5859f46678847c1b073f367&scene=27#wechat_redirect) 62 | - [2020-04-24-代码行数减少30-90%!多邻国从Java迁移到Kotlin的奇妙体验](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247494321&idx=1&sn=a505b2128e70fe78c47c534300b4dbb9&chksm=f9525ff2ce25d6e4df79910a820fc9b73203101e671a9e74180b5ef35daffcb8a50034648eb5&scene=27#wechat_redirect) 63 | - [2020-02-03-GraphQL-vs-REST-API-架构,谁更胜一筹?​](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247493683&idx=2&sn=1fcdf497a4b90df32308c6eb66fde909&chksm=f9525d70ce25d4668a7c6fbc10ccd77b47a57b4e7c493365622fe6cb138b5290186b79e5d7bc&scene=27#wechat_redirect) 64 | - [2020-01-17-GraphQL:API-的未来](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247493627&idx=1&sn=12bffe8079ed17c0d3fc39e3984f1b19&chksm=f95252b8ce25dbaebcbe0171b5ab810289c64afbb0759104bd7b82b747a97b28e4d48974f5da&scene=27#wechat_redirect) 65 | - [2020-01-12-前端周报:C语言获2019年度最佳编程语言称号,Swift稳居TOP10榜单;微软数据库漏洞或使8.](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247493597&idx=1&sn=a0d3dfd687e99f6f5d69600abb8431f3&chksm=f952529ece25db8876f39175c0a6004d9555111c53f58c0714caa6e2debedaa6f2da99a72755&scene=27#wechat_redirect) 66 | - [2019-11-19-PayPal:如何在你的公司扩展GraphQL?](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247493140&idx=1&sn=34281fd59d1f1668cd7072e612f6f03d&chksm=f9525357ce25da41b5fb5e7ace6f4b13c0769fa37ca59973bf5c6bc3ea3a5863c55a83254e00&scene=27#wechat_redirect) 67 | - [2019-10-17-听我的!搞懂数据库、云会议、AI开发、微服务其实一点也不难](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247492811&idx=3&sn=1f70befccda50f145f81668eb49d3411&chksm=f9525188ce25d89ed6da85ad9b6b269f66dc97aa3f1b15e69163d973e49a4a1927a5f54a527c&scene=27#wechat_redirect) 68 | - [2019-09-05-要不要大规模采用Kotlin替代Java?LinkedIn做了这些考量](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247492402&idx=1&sn=0db008de8621ddf676ecb6942a26d4dc&chksm=f9525671ce25df67c6d907d7749d1655392d230bf61d57fac021aebcd824bb2782c1e8c12201&scene=27#wechat_redirect) 69 | - [2019-08-16-深度解析GraphQL:澄清你对GraphQL的误解](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247492167&idx=1&sn=43004262fd2bd2610bd218fd7302555a&chksm=f9525704ce25de125e9d2b8f83d2fd8aabe73d45415c44231e0913d7a6d751e59ff5e42c597d#rd) 70 | - [2019-07-25-Kotlin对战Java:新秀会击败老将吗?](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247491931&idx=3&sn=c11e17fd63ef44a8b14b08e6d900c4e0&chksm=f9525418ce25dd0e16d5a7b24c8b1f79663f7ff0554746f288914bca89ddbe7c762d708e8cc0#rd) 71 | - [2019-04-02-前端必备!最全nginx技术分析](https://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng%3D%3D&mid=2247490869&idx=1&sn=5260a9d9064456ac5472ddfa2d0be822#rd) 72 | - [2019-01-20-为什么说GraphQL可以取代REST-API?](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng%3D%3D&mid=2247490309&idx=1&sn=ae433cdd36ed969894e20304c0dd5556#wechat_redirect) 73 | - [2019-01-03-开发速度快10倍!Airbnb用GraphQL+Apollo做到了](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng%3D%3D&mid=2247490217&idx=1&sn=90be3a029c34bb5422c9c249e0e8cf61#wechat_redirect) 74 | - [2018-11-07-Linux基金会宣布将为GraphQL成立基金会](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng%3D%3D&mid=2247489818&idx=1&sn=df146bf0240c23712ea518b9281dc4a6#wechat_redirect) 75 | - [2018-10-25-gRPC-Web发布,REST又要被干掉了?](http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng%3D%3D&mid=2247489750&idx=1&sn=8f374f60600e8cbe15e6749a6555f697#wechat_redirect) 76 | - [2022-03-21-不懂SSR做什么高级前端开发?3天搞定面试加分项!](http://mp.weixin.qq.com/s?__biz=Mzg2NjY2NTcyNg==&mid=2247485935&idx=1&sn=af9624501f717ae74280d782aae56942&chksm=ce461c7ef931956853990414386c01602bbec70f978bb4e30ff6711b3e79a4404852deafe45f#rd) 77 | - [2022-02-23-下一个五年什么最火?Rust-可以一战!](http://mp.weixin.qq.com/s?__biz=Mzg2NjY2NTcyNg==&mid=2247485607&idx=1&sn=95accedd5382e831f35428eb78e779e3&chksm=ce461d36f931942000331d095bb64dc2ffc0e31771e2acc019f0dd8e09519959a9fc40f23d02#rd) 78 | - [2022-02-11-奇怪!生成网页水印,为啥总扯到-MutationObserver?](http://mp.weixin.qq.com/s?__biz=Mzg2NjY2NTcyNg==&mid=2247485447&idx=1&sn=309c2a7c185beba5c6c5b191564c24c5&chksm=ce461d96f9319480fcf4ccf1a3476970e199286624f64f745d6d9b5e2d21f39875c61bc54e63#rd) 79 | - [2022-04-06-深层次业务场景打造属于自己的命令行编译工具](http://mp.weixin.qq.com/s?__biz=MzA4ODUzNTE2Nw==&mid=2451062366&idx=2&sn=8255fbd8cd20b5ee0e329f5ebddd7e87&chksm=87c4274eb0b3ae58ca468e0a58012d408fb622f0817280d78980080f0530fa95b0df5c2111ed#rd) 80 | - [2022-03-24-平均年薪50.8万,Python工程师拿下这个证书有多吃香?!](http://mp.weixin.qq.com/s?__biz=MzA4ODUzNTE2Nw==&mid=2451062096&idx=1&sn=9119e1e985127a46d31a15a1be27bf87&chksm=87c42440b0b3ad56b5a406d56d41806e1edc761a4ce4b8d2bc3d90cdf1b457ffa4110a48e768#rd) 81 | - [2022-03-21-不懂SSR做什么高级前端开发?3天搞定面试加分项!](http://mp.weixin.qq.com/s?__biz=MzA4ODUzNTE2Nw==&mid=2451061958&idx=1&sn=aa6920f7f9bf8cbcdae9a60cd5d1d40e&chksm=87c425d6b0b3acc06a1e561cc1989f5bb6ae52eeae9a6bd553a9dd67b2e63358a5b540ed289a#rd) 82 | - [2022-06-09-不懂SSR做什么高级前端开发?3天搞定面试加分项!](http://mp.weixin.qq.com/s?__biz=MzUxNzk1MjQ0Ng==&mid=2247507972&idx=1&sn=d125536f923427e04dd446ad96d58b7e&chksm=f992a6d5cee52fc3dc0f66826512bd932626778fa7ed6dc94747a4103f09bb1d5e98977897c9#rd) 83 | - [2022-04-22-如何靠K8s为自己的面试加高分,附198道K8s/Docker/DevOps面试真题+答案详解](http://mp.weixin.qq.com/s?__biz=MzUxNzk1MjQ0Ng==&mid=2247506234&idx=1&sn=729c331d1695a84616d528975652832d&chksm=f992dfebcee556fd9057924263a2965dfa84bc556421833aa12dfb28ef452b0901b8c8de6ea5#rd) 84 | - [2022-04-09-前端掌握这些-Linux-命令,够用了](http://mp.weixin.qq.com/s?__biz=MzUxNzk1MjQ0Ng==&mid=2247505099&idx=1&sn=b95c9cbc36658f358f3dbeec79d8b9c2&chksm=f992d21acee55b0c1754adc6f854426aa0c28a2c55a5a799238c76d5950b6a25126e33a2b997#rd) 85 | - [2022-03-22-Git不要只会pull和push,学学这5条提高效率的命令](http://mp.weixin.qq.com/s?__biz=MzUxNzk1MjQ0Ng==&mid=2247504460&idx=1&sn=92f79b1fe622c6f1e22c5a106e471716&chksm=f992d49dcee55d8b248a14417049a430969621ac531d3331480c2f141d2a8035a3897d8b606f#rd) 86 | - [2022-01-28-命令行常用工具的替代品](http://www.ruanyifeng.com/blog/2022/01/cli-alternative-tools.html) 87 | - [2020-12-13-《SSH-入门教程》发布了](http://www.ruanyifeng.com/blog/2020/12/ssh-tutorial.html) 88 | - [2020-08-26-rsync-用法教程](http://www.ruanyifeng.com/blog/2020/08/rsync.html) 89 | - [2020-07-08-SSH-证书登录教程](http://www.ruanyifeng.com/blog/2020/07/ssh-certificate.html) 90 | - [2020-04-16-《Bash-脚本教程》发布了](http://www.ruanyifeng.com/blog/2020/04/bash-tutorial.html) 91 | - [2019-12-29-Bash-脚本如何创建临时文件:mktemp-命令和-trap-命令教程](http://www.ruanyifeng.com/blog/2019/12/mktemp.html) 92 | - [2019-10-21-Tmux-使用教程](http://www.ruanyifeng.com/blog/2019/10/tmux.html) 93 | - [2019-08-08-xargs-命令教程](http://www.ruanyifeng.com/blog/2019/08/xargs-tutorial.html) 94 | - [2019-07-23-Termux-入门教程:架设手机-Server-下载文件](http://www.ruanyifeng.com/blog/2019/07/termux-tutorial.html) 95 | - [2019-06-25-为什么开源数据库改变许可证?](http://www.ruanyifeng.com/blog/2019/06/open-database-relicensing.html) 96 | - [2019-01-15-数据库表连接的简单解释](http://www.ruanyifeng.com/blog/2019/01/table-join.html) 97 | - [2018-12-24-git-bisect-命令教程](http://www.ruanyifeng.com/blog/2018/12/git-bisect.html) 98 | - [2018-10-03-RESTful-API-最佳实践](http://www.ruanyifeng.com/blog/2018/10/restful-api-best-practices.html) 99 | - [2018-09-20-命令行通配符教程](http://www.ruanyifeng.com/blog/2018/09/bash-wildcards.html) 100 | - [2021-08-05-SSR、SSG、ISR、DPR-有什么区别?](http://www.yyyweb.com/5407.html) 101 | - [2018-09-06-Apollo-GraphQL-在-Web-APP-中应用的思考](http://www.yyyweb.com/5151.html) 102 | - [2019-12-04-前端也要懂一点-MongoDB-Schema-设计](https://jelly.jd.com/article/6006b1055b6c6a01506c8826) 103 | - [2017-12-15-GraphQL-使用介绍](https://jelly.jd.com/article/6006b1055b6c6a01506c87ff) 104 | - [2016-02-27-初探Docker](https://jelly.jd.com/article/6006b1035b6c6a01506c8795) 105 | -------------------------------------------------------------------------------- /details/前端里.md: -------------------------------------------------------------------------------- 1 | :alarm_clock: 更新时间: 2022-06-24 12:03:44。[文章来源](/README.md)、[文章分类](/TAGS.md) 2 | 3 | ## 前端里 4 | 5 | 6 | 7 | 8 | - [2022-06-23-HTTP史记-–-从HTTP/1到HTTP/3](http://www.yyyweb.com/5463.html) 9 | - [2022-06-05-10-分钟搞懂-Vite-devServer,速来围观!](http://www.yyyweb.com/5459.html) 10 | - [2022-05-04-无用代码去哪了?项目减重之-Rollup-Tree-shaking](http://www.yyyweb.com/5452.html) 11 | - [2022-05-04-90-行代码的-Webpack,你确定不学吗?](http://www.yyyweb.com/5453.html) 12 | - [2022-03-29-Pinia与Vuex的对比:Pinia是Vuex的良好替代品吗?](http://www.yyyweb.com/5448.html) 13 | - [2022-03-06-淘宝-npm-域名切换-&&-npmmirror-镜像源升级](http://www.yyyweb.com/5443.html) 14 | - [2022-03-06-2022,前端工具链十年盘点](http://www.yyyweb.com/5445.html) 15 | - [2022-02-13-人生的破局点:马斯洛层次需求「倒序实现」理论](http://www.yyyweb.com/5440.html) 16 | - [2022-01-21-Vue-3-正式出道!将成为新的默认版本](http://www.yyyweb.com/5439.html) 17 | - [2021-12-26-聊聊我关于-Web-未来发展趋势的看法](http://www.yyyweb.com/5436.html) 18 | - [2021-12-11-对混沌工程的五个常见的误解](http://www.yyyweb.com/5428.html) 19 | - [2021-12-05-ECMAScript-2021-通过,写入-ECMAScript-标准](http://www.yyyweb.com/5426.html) 20 | - [2021-10-25-如何用研发效能搞垮一个团队](http://www.yyyweb.com/5423.html) 21 | - [2021-10-23-18-个杀手级-JavaScript-单行代码](http://www.yyyweb.com/5419.html) 22 | - [2021-08-28-前端40+精选VSCode插件,你值得拥有!](http://www.yyyweb.com/5416.html) 23 | - [2021-08-22-PM入门:你需要知道的项目管理知识](http://www.yyyweb.com/5411.html) 24 | - [2021-08-22-35+精选chrome插件,含15+前端插件](http://www.yyyweb.com/5414.html) 25 | - [2021-08-05-推荐常用的六个插件武装你的-Chrome](http://www.yyyweb.com/5403.html) 26 | - [2021-08-05-SSR、SSG、ISR、DPR-有什么区别?](http://www.yyyweb.com/5407.html) 27 | - [2021-03-05-LogicFlow:专注流程可视化的前端框架](http://www.yyyweb.com/5399.html) 28 | - [2020-12-05-🎉-Element-UI-for-Vue-3.0-来了!](http://www.yyyweb.com/5398.html) 29 | - [2020-11-18-不可思议,纯-CSS-实现图片滚动](http://www.yyyweb.com/5392.html) 30 | - [2020-09-20-Vue-3.0-正式发布【附全球发布会视频】](http://www.yyyweb.com/5391.html) 31 | - [2020-08-08-Vue-Composition-API-和-React-Hooks-对比](http://www.yyyweb.com/5386.html) 32 | - [2020-08-08-「查缺补漏」18道浏览器面试题解析](http://www.yyyweb.com/5389.html) 33 | - [2020-07-12-一行-CSS-代码实现-10-种现代布局](http://www.yyyweb.com/5383.html) 34 | - [2020-06-21-18款-Webpack-插件,总会有你想要的!](http://www.yyyweb.com/5380.html) 35 | - [2020-05-05-15个可以带给你启发的-SVG-动画示例](http://www.yyyweb.com/5363.html) 36 | - [2020-04-19-Flutter-VS-React-Native-VS-Native-性能PK](http://www.yyyweb.com/5360.html) 37 | - [2020-04-19-Vue-3.0-Beta-版本发布,全家桶抢先体验](http://www.yyyweb.com/5359.html) 38 | - [2020-03-23-AntV-统计图表-G2Plot-1.0-发布](http://www.yyyweb.com/5357.html) 39 | - [2020-03-08-24-个-ES6-方法,解决实际开发的-JS-问题](http://www.yyyweb.com/5354.html) 40 | - [2020-03-08-Ant-Design-4.0-正式版来了!](http://www.yyyweb.com/5352.html) 41 | - [2020-01-20-Taro-2.0:拥抱社区,拥抱变化](http://www.yyyweb.com/5350.html) 42 | - [2020-01-08-聊聊《2019-年-JavaScript-现状调查报告》](http://www.yyyweb.com/5342.html) 43 | - [2020-01-08-年度总结:2019-前端技术发展回顾](http://www.yyyweb.com/5345.html) 44 | - [2019-12-24-React-Hooks-在蚂蚁金服的实践](http://www.yyyweb.com/5329.html) 45 | - [2019-12-24-第十四届-D2-前端技术论坛精彩回顾【附PPT】](http://www.yyyweb.com/5338.html) 46 | - [2019-12-08-Node.js-在微医的应用场景及实践](http://www.yyyweb.com/5326.html) 47 | - [2019-12-08-Rax-PWA-–-快速升级-Web-体验](http://www.yyyweb.com/5327.html) 48 | - [2019-12-07-双十一-79.34%-的代码是怎样智能生成的](http://www.yyyweb.com/5328.html) 49 | - [2019-10-27-ES6全部特性(看图就能记下,值得收藏)](http://www.yyyweb.com/5321.html) 50 | - [2019-10-27-数组去重12种方案(经典面试必问)](http://www.yyyweb.com/5318.html) 51 | - [2019-10-27-你真的了解重绘和重排(回流)吗?](http://www.yyyweb.com/5317.html) 52 | - [2019-10-06-Vue-3-源码开放,今天你学习了吗?](http://www.yyyweb.com/5310.html) 53 | - [2019-10-06-Remax-–-使用真正的-React-构建小程序](http://www.yyyweb.com/5309.html) 54 | - [2019-09-09-互联网时代研发效能的挑战和应对之道](http://www.yyyweb.com/5306.html) 55 | - [2019-09-09-可能是你见过最完善的微前端解决方案](http://www.yyyweb.com/5305.html) 56 | - [2019-08-30-Serverless-For-Frontend-前世今生](http://www.yyyweb.com/5303.html) 57 | - [2019-08-30-可能是你见过最完善的微前端解决方案](http://www.yyyweb.com/5302.html) 58 | - [2019-07-08-技术三板斧:技术规划、管理、架构的思考](http://www.yyyweb.com/5299.html) 59 | - [2019-07-08-微前端架构:增量升级、代码解耦、独立部署](http://www.yyyweb.com/5298.html) 60 | - [2019-06-09-第二届微医前端技术沙龙【附PPT下载】](http://www.yyyweb.com/5280.html) 61 | - [2019-06-09-Node-12-值得关注的新特性一览](http://www.yyyweb.com/5279.html) 62 | - [2019-04-21-程序员到-CTO-再到-CEO-的进化之路](http://www.yyyweb.com/5276.html) 63 | - [2019-04-21-V8-内存管理和垃圾回收机制总结](http://www.yyyweb.com/5275.html) 64 | - [2019-03-01-快速定位线上-Node.js-内存泄漏问题](http://www.yyyweb.com/5274.html) 65 | - [2019-02-27-高效秘籍:五个最佳的GTD应用软件](http://www.yyyweb.com/5271.html) 66 | - [2019-02-24-精心挑选的2018年最佳前端特效(系列七)](http://www.yyyweb.com/5249.html) 67 | - [2019-02-10-精心挑选的2018年最佳前端特效(系列六)](http://www.yyyweb.com/5248.html) 68 | - [2019-01-20-精心挑选的2018年最佳前端特效(系列五)](http://www.yyyweb.com/5240.html) 69 | - [2019-01-13-细说-async/await-相较于-Promise-的优势](http://www.yyyweb.com/5261.html) 70 | - [2019-01-13-精心挑选的2018年最佳前端特效(系列四)](http://www.yyyweb.com/5239.html) 71 | - [2019-01-09-精心挑选的2018年最佳前端特效(系列三)](http://www.yyyweb.com/5238.html) 72 | - [2019-01-05-传说这个是-35-个最好用-Vue-开源库](http://www.yyyweb.com/5231.html) 73 | - [2019-01-04-精心挑选的2018年最佳前端特效(系列二)](http://www.yyyweb.com/5237.html) 74 | - [2018-12-30-精心挑选的2018年最佳前端特效(系列一)](http://www.yyyweb.com/5236.html) 75 | - [2018-12-20-再谈-SVG-vs-Image-vs-Iconfont](http://www.yyyweb.com/5228.html) 76 | - [2018-12-20-Taro-1.2:将微信小程序转换为多端应用](http://www.yyyweb.com/5227.html) 77 | - [2018-12-20-深入理解Node.js垃圾回收与内存管理](http://www.yyyweb.com/5225.html) 78 | - [2018-12-12-持续交付:如何在2周内交付85%以上需求?](http://www.yyyweb.com/5210.html) 79 | - [2018-12-12-如何进行-GC-调优提升-Node-应用性能](http://www.yyyweb.com/5221.html) 80 | - [2018-11-25-JavaScript-引擎、运行时、调用堆栈概述](http://www.yyyweb.com/5219.html) 81 | - [2018-11-21-集体通宵发版怎么破?分享四道“药方”](http://www.yyyweb.com/5212.html) 82 | - [2018-11-17-Vue.js-3.0-PPT(附部分中文翻译)](http://www.yyyweb.com/5216.html) 83 | - [2018-11-17-Taro-1.1-发布,全面支持微信/百度/支付宝小程序](http://www.yyyweb.com/5207.html) 84 | - [2018-11-08-Webpack-HMR-热更新实现原理深入分析](http://www.yyyweb.com/5194.html) 85 | - [2018-11-08-开发技巧:使用-ImageMagick-进行图像处理](http://www.yyyweb.com/5199.html) 86 | - [2018-11-08-动画:从-AE-到-Web,‘甩锅’给设计师](http://www.yyyweb.com/5201.html) 87 | - [2018-11-07-多端统一开发框架-Taro-1.0-正式发布](http://www.yyyweb.com/5197.html) 88 | - [2018-11-06-Vue.js-父子组件之间通信的十种方式](http://www.yyyweb.com/5189.html) 89 | - [2018-11-05-12个美丽网站,受到日出启发的配色方案](http://www.yyyweb.com/5182.html) 90 | - [2018-11-03-15个新鲜出炉的-Photoshop-文本效果教程](http://www.yyyweb.com/5178.html) 91 | - [2018-11-01-前后端分离:使用-token-登录解决方案](http://www.yyyweb.com/5144.html) 92 | - [2018-10-29-精选:3个为您提供高质量免费照片的网站](http://www.yyyweb.com/5171.html) 93 | - [2018-10-28-在业务提升:创建领域特定语言(DSL)](http://www.yyyweb.com/5166.html) 94 | - [2018-09-26-基于-BFF-隔离的前后端分离演进](http://www.yyyweb.com/5125.html) 95 | - [2018-09-19-H5唤起APP完整指南(附开源NPM库)](http://www.yyyweb.com/5149.html) 96 | - [2018-09-06-Apollo-GraphQL-在-Web-APP-中应用的思考](http://www.yyyweb.com/5151.html) 97 | - [2018-09-05-面向初学者:什么是高阶组件?](http://www.yyyweb.com/5190.html) 98 | - [2018-08-19-据说是最好的正则表达式的教程笔记](http://www.yyyweb.com/5141.html) 99 | - [2018-08-18-移动端调试痛点?送你五款前端开发利器!](http://www.yyyweb.com/5140.html) 100 | - [2018-08-15-面试感悟:当经历所有大厂的实习面试后](http://www.yyyweb.com/5136.html) 101 | - [2018-08-13-Vue-项目中-axios-的封装和API接口的管理](http://www.yyyweb.com/5135.html) 102 | - [2018-08-07-玉伯:如何从前端技术进化到体验科技?](http://www.yyyweb.com/5127.html) 103 | - [2018-08-05-在微服务下基于-GraphQL-构建-BFF](http://www.yyyweb.com/5122.html) 104 | - [2018-07-30-nativefier-–-让网页一键生成桌面应用程序](http://www.yyyweb.com/5117.html) 105 | - [2018-07-27-6个提升程序员幸福感的-JavaScript-小技巧](http://www.yyyweb.com/5112.html) 106 | -------------------------------------------------------------------------------- /details/淘系前端团队.md: -------------------------------------------------------------------------------- 1 | :alarm_clock: 更新时间: 2022-06-02 18:02:48。[文章来源](/README.md)、[文章分类](/TAGS.md) 2 | 3 | ## 淘系前端团队 4 | 5 | 6 | 7 | 8 | - [2022-05-31-并发渲染优化:让文件树的渲染又快又稳](http://mp.weixin.qq.com/s?__biz=MzI5NjM5NDQxMg==&mid=2247495557&idx=1&sn=41745805dcd01b806db6dbbfd712c39e&chksm=ec47a446db302d502f380805ed96566e66d0294e7c34c2232c2d964927a840d066a35f3639ee#rd) 9 | - [2022-05-12-建设下一代-Web-开放技术——WebContainer](http://mp.weixin.qq.com/s?__biz=MzI5NjM5NDQxMg==&mid=2247495554&idx=1&sn=2aedb96ef0d56fe5ee7f07b40094fa26&chksm=ec47a441db302d57f61adff173b5344443db05316a6dc7a5f92a5ac7d702ed27426f2fcc1d95#rd) 10 | - [2022-05-09-中科院开源之夏2022来啦!欢迎加入OpenSumi社区项目](http://mp.weixin.qq.com/s?__biz=MzI5NjM5NDQxMg==&mid=2247495551&idx=1&sn=d5a03691f7273680aab7feb33aa7efce&chksm=ec47a4bcdb302daa148a3be57e483997ed192da659772cde0b6abe14f0424c44c90635d9822a#rd) 11 | - [2022-04-26-ECMAScript-双月报告:装饰器提案进入-Stage-3](http://mp.weixin.qq.com/s?__biz=MzI5NjM5NDQxMg==&mid=2247495540&idx=1&sn=3a090961b1eba7ecd08fa3331ffc5ff2&chksm=ec47a4b7db302da1575ea2a2196ec8dec6b2a4c529cea9c0822563cbee075d82c44e6b7eef4a#rd) 12 | - [2022-04-21-如何使用-JS-实现一个-HTML-解析器](http://mp.weixin.qq.com/s?__biz=MzI5NjM5NDQxMg==&mid=2247495537&idx=1&sn=c8d0ef67964f583317add7d1cf4501e3&chksm=ec47a4b2db302da408aa046fd978a4bb008e5704836aaf729d45f1075478401a8a1d99022e81#rd) 13 | - [2022-04-20-我在淘宝做弹窗,2022-年初的回顾与展望](http://mp.weixin.qq.com/s?__biz=MzI5NjM5NDQxMg==&mid=2247495536&idx=1&sn=9950af28401d2be1fa214b67540c2703&chksm=ec47a4b3db302da5ba1b91b77de4db1498429e3394e2974c056d4086abd8638e322b1003a5dd#rd) 14 | - [2022-03-25-Node.js-Web-框架再进化---面向前端与未来标准](http://mp.weixin.qq.com/s?__biz=MzI5NjM5NDQxMg==&mid=2247495520&idx=1&sn=b9041886373d4abbf9887126f27188f8&chksm=ec47a4a3db302db538f25fa88f87cb5f053aa5712072b902da53512bc1bd84c5ec885cdc2f75#rd) 15 | - [2022-03-17-大淘宝中后台页面无代码生产新模式探索](http://mp.weixin.qq.com/s?__biz=MzI5NjM5NDQxMg==&mid=2247495517&idx=1&sn=67a09c2f7cebfd4a24e498def2faa20d&chksm=ec47a49edb302d882f85ab6feef46707350ef3ff933061757561f0d41fdf80a0994b74ae67c9#rd) 16 | - [2022-03-16-TypeScript-中的类型控制流分析演进](http://mp.weixin.qq.com/s?__biz=MzI5NjM5NDQxMg==&mid=2247495503&idx=1&sn=7f5a63645e5b90d222865204df3afc2c&chksm=ec47a48cdb302d9aa0523361551dc7d839508832187f6330911695ce86c518d7c758c552635e#rd) 17 | - [2022-03-10-关于依赖管理的真相-—-前端包管理器探究](http://mp.weixin.qq.com/s?__biz=MzI5NjM5NDQxMg==&mid=2247495463&idx=1&sn=591c5b3bfcf78f10c718153fe2dc8228&chksm=ec47a4e4db302df22cb84a2509977368763f577ce6139f9fb7639f034396c889c5dc701c3d43#rd) 18 | - [2022-03-01-淘宝店铺-TypeScript-研发规约落地实践](http://mp.weixin.qq.com/s?__biz=MzI5NjM5NDQxMg==&mid=2247495461&idx=1&sn=ad1efbe8eba81569aae9914d58dd2cbe&chksm=ec47a4e6db302df032a900ce47032b429b5e85c6e2fb027434ddd1f9ef16d5c19304190c5990#rd) 19 | - [2022-02-23-虚拟偶像诞生记---数字人行业和技术研究](http://mp.weixin.qq.com/s?__biz=MzI5NjM5NDQxMg==&mid=2247495421&idx=1&sn=7fd736ec42ada115965491ae516458d7&chksm=ec47a53edb302c28c139b7c35f7e3442596b9ebca77f129015098220d6299dd432b60b0a807c#rd) 20 | - [2022-02-22-谈谈性能优化---从用户体验聊起](http://mp.weixin.qq.com/s?__biz=MzI5NjM5NDQxMg==&mid=2247495366&idx=1&sn=41f2849f52833604e3eaee140450633c&chksm=ec47a505db302c13cdd878931907fed5d718e826e8bb883a3d5801d78c180971501cd730d77b#rd) 21 | - [2022-02-21-淘系前端架构---周刊---220221-期](http://mp.weixin.qq.com/s?__biz=MzI5NjM5NDQxMg==&mid=2247495365&idx=1&sn=4afd3eb191687efac64adaa350fe2bb3&chksm=ec47a506db302c10ce5b9adda29c90e4cb25be4bfbf26f8a959f4929d5bddf817810f7730248#rd) 22 | - [2022-02-18-优化-JS-程序的一个小方法](http://mp.weixin.qq.com/s?__biz=MzI5NjM5NDQxMg==&mid=2247495318&idx=1&sn=c73fe92d195d90fd6db316f962bc9c41&chksm=ec47a555db302c435b6ec4caf08fce8064b3adb07feefe0d87eadb4db30150870a17e8888dd3#rd) 23 | - [2022-02-17-浅谈-TS-标称类型介绍及社区实现](http://mp.weixin.qq.com/s?__biz=MzI5NjM5NDQxMg==&mid=2247495315&idx=1&sn=afc625022edda66f868c5a777b94fb2c&chksm=ec47a550db302c46c749c677da93f3ecc3ff7048d22b17a20d801453b0562c1710a80e1e94a1#rd) 24 | - [2022-02-14-使用跨端解决方案Rax编写鸿蒙应用](http://mp.weixin.qq.com/s?__biz=MzI5NjM5NDQxMg==&mid=2247495290&idx=1&sn=22f4ad2f85058ec0e8e0f89cd37949f8&chksm=ec47a5b9db302cafe3bad723a5e0b9d3b0c4b50dc746689ebfcf39ecdadf65e7ac896c0949f2#rd) 25 | - [2022-02-11-终端还能更快吗?](http://mp.weixin.qq.com/s?__biz=MzI5NjM5NDQxMg==&mid=2247495288&idx=1&sn=25af14a18410001610f4cc8d08ade72a&chksm=ec47a5bbdb302cadf86fd8ccd42859aab301617a7e0b2fbb99d006100305ab3b735fa31e5f2d#rd) 26 | - [2022-02-10-ECMAScript-双月报告:TC39-2022年1月会议提案进度汇总](http://mp.weixin.qq.com/s?__biz=MzI5NjM5NDQxMg==&mid=2247495274&idx=1&sn=6f088cb912156fdbf95e3cdf2d202b30&chksm=ec47a5a9db302cbf2a508631fc3d98e937d1b9fb74f98bb2160147177e27be495e077b0c820a#rd) 27 | - [2022-01-24-淘系前端架构---周刊---220124-期](http://mp.weixin.qq.com/s?__biz=MzI5NjM5NDQxMg==&mid=2247495272&idx=1&sn=a806d3b84d519b84999686a7df2ea494&chksm=ec47a5abdb302cbda9bda7ba6203c7442bae7cbfcc19577a5bbee47d6b3fbe4b81039d3e0c35#rd) 28 | - [2022-01-21-北海(Kraken)v0.10.0-发布---支持-Flutter-Widget-混合渲染](http://mp.weixin.qq.com/s?__biz=MzI5NjM5NDQxMg==&mid=2247495233&idx=1&sn=af3904c308527c447a50982e7c7b826b&chksm=ec47a582db302c944e41648e5e6cb31025ff365974fd9d9b2feb46af17293aaf77778095b539#rd) 29 | - [2022-01-20-自己动手写符合自己业务需求的-eslint-规则](http://mp.weixin.qq.com/s?__biz=MzI5NjM5NDQxMg==&mid=2247495217&idx=1&sn=f5c99bd0d97a90282b2c8aa3b6c9fc0b&chksm=ec47a5f2db302ce489d71e5f046cd10d78380828d19dba5fec72c1fd556eb2711d52b12e69f2#rd) 30 | - [2022-01-17-性能优化,有时候是件体力活](http://mp.weixin.qq.com/s?__biz=MzI5NjM5NDQxMg==&mid=2247495141&idx=1&sn=fe00c09a0887589271e62927dfc40ccb&chksm=ec47a626db302f30e0fa923ee6881f08c3fcd12bfab3f6a8e272a03ea0f87c3e3f231c0f024c#rd) 31 | - [2022-01-12-Node.js-2021年开发者报告解读:健康稳步的发展中](http://mp.weixin.qq.com/s?__biz=MzI5NjM5NDQxMg==&mid=2247495139&idx=1&sn=ac3cd2becc106cf38091778403f2c598&chksm=ec47a620db302f368ecd87a64efbf2ba311efef4c57632a1dd37eb2172046c851cef9d0395d8#rd) 32 | - [2022-01-10-淘系前端架构---周刊---220110-期](http://mp.weixin.qq.com/s?__biz=MzI5NjM5NDQxMg==&mid=2247495127&idx=1&sn=176a6cd4ac4059ad40abb2bc0aed56ca&chksm=ec47a614db302f02c5e69f4b922525577dd0f98601518d86cfe6d361cfe9d186495ea406fd93#rd) 33 | - [2022-01-06-ES6-以上版本代码要不要转码成-ES5?](http://mp.weixin.qq.com/s?__biz=MzI5NjM5NDQxMg==&mid=2247495110&idx=1&sn=bd638c3cd97a39e0919f6e2ba3fbdf26&chksm=ec47a605db302f138cdf5aaf7a2782255fb7d833105654722931f3ea2b533ccfb547c6058223#rd) 34 | - [2022-01-05-北海(Kraken)构建大前端混合渲染技术体系-——-Web-与-Flutter-Widget-混合渲染方案](http://mp.weixin.qq.com/s?__biz=MzI5NjM5NDQxMg==&mid=2247495020&idx=1&sn=a8a45ff6ff893ce4b0a22712970b6b42&chksm=ec47a6afdb302fb9a07f69eedbd8e242887c52bc00238aae3a7e3f76f257528374332a55e56d#rd) 35 | - [2022-01-04-2021-Web-Components-技术趋势解读](http://mp.weixin.qq.com/s?__biz=MzI5NjM5NDQxMg==&mid=2247495018&idx=1&sn=dd95b8cee63e58675d2ef3b62366432b&chksm=ec47a6a9db302fbf122c30cfb4ffb3121f790620b128bd037e95c3abd21ff4c4055b80e4a038#rd) 36 | - [2022-01-03-淘系前端架构---周刊---220103-期](http://mp.weixin.qq.com/s?__biz=MzI5NjM5NDQxMg==&mid=2247495016&idx=1&sn=7afc269ecad0e3d5da792e5c183f91f7&chksm=ec47a6abdb302fbd584d949dd36a33a202e6506a8e3b4a3c8906c3ecf208fe22962bbd822b1a#rd) 37 | - [2021-12-21-如何提升前端线上问题发现率?我们是这样做的](http://mp.weixin.qq.com/s?__biz=MzI5NjM5NDQxMg==&mid=2247494969&idx=1&sn=83ab5495a96abe0a6abb0bc6a7961334&chksm=ec47a6fadb302fec270b95c7249c9ab41d392e4333bb5d3c9a4de462682d569af0e6790ffffe#rd) 38 | - [2021-12-20-淘系前端架构---周刊---211220-期](http://mp.weixin.qq.com/s?__biz=MzI5NjM5NDQxMg==&mid=2247494952&idx=1&sn=f0faeba878fdb5693f2faa1d15ccf08d&chksm=ec47a6ebdb302ffd04fbd6154e94733fdb14f6171dc37dd7c7c1e45d1692fea82f9cf1b258b1#rd) 39 | - [2021-12-16-新兴活跃在直播和游戏等各行业中的虚拟角色,你了解过了没?](http://mp.weixin.qq.com/s?__biz=MzI5NjM5NDQxMg==&mid=2247494941&idx=1&sn=a6c86f0de01a8ab2d1c9dc5ffb78616c&chksm=ec47a6dedb302fc81e6c7c83529b82baded0ae568a396614c19887bc945c57e8b1786898bb52#rd) 40 | - [2021-12-16-前端工程师做“业务研发”或“基础技术”哪个更有前途?-|-D2-之夜辩论赛火热来袭啦!](http://mp.weixin.qq.com/s?__biz=MzI5NjM5NDQxMg==&mid=2247494941&idx=2&sn=485db44ead6c294b23c1de3137fcfe46&chksm=ec47a6dedb302fc8b01105b7b084a9577db928b4a36f7d98fd04f39d1e49170a1b071fc62428#rd) 41 | - [2021-09-08-VS-Code-是如何优化启动性能的?](https://fed.taobao.org/blog/taofed/do71ct/wpsf10) 42 | - [2021-08-05-服饰3D柔性渲染调研及实践](https://fed.taobao.org/blog/taofed/do71ct/fufsgh) 43 | - [2021-06-22-淘系前端研发工具-AppWorks-正式发布](https://fed.taobao.org/blog/taofed/do71ct/drggiq) 44 | - [2021-05-15-All-in-one:项目级-monorepo-策略最佳实践](https://fed.taobao.org/blog/taofed/do71ct/uihagy) 45 | - [2021-03-17-影响编码心流的问题及其对策](https://fed.taobao.org/blog/taofed/do71ct/iwtk19) 46 | - [2021-03-09-Midway-Serverless-发布-2.0,一体化让前端研发再次提效](https://fed.taobao.org/blog/taofed/do71ct/mvd9lw) 47 | - [2021-03-09-业务系统的稳定性建设](https://fed.taobao.org/blog/taofed/do71ct/fc3cy0) 48 | - [2021-01-20-2021年前端趋势预测](https://fed.taobao.org/blog/taofed/do71ct/tfeye7) 49 | - [2021-01-14-设计实现中后台搭建-PaaS-平台](https://fed.taobao.org/blog/taofed/do71ct/qg8x2q) 50 | - [2020-12-31-前端智能化实践—-P2C-从需求文档生成代码](https://fed.taobao.org/blog/taofed/do71ct/ffeogu) 51 | - [2020-12-10-舒文:浅谈阿里前端的多样化](https://fed.taobao.org/blog/taofed/do71ct/krg5m9) 52 | - [2020-12-09-从需求生成代码?D2-最具争议的分享,你值得来瞄一眼](https://fed.taobao.org/blog/taofed/do71ct/gm3a57) 53 | - [2020-12-02-CodeReview-下一代:基于-KAITIAN-的纯前端-CR-IDE](https://fed.taobao.org/blog/taofed/do71ct/uyaxag) 54 | - [2020-11-27-Pick-阿里巴巴前端练习生计划,成为专业前端人!](https://fed.taobao.org/blog/taofed/do71ct/fiayw0) 55 | - [2020-11-16-4982亿背后的前端技术—2020天猫双11前端体系大揭秘](https://fed.taobao.org/blog/taofed/do71ct/egg54e) 56 | - [2020-10-20-智能UI:面向未来的UI开发技术](https://fed.taobao.org/blog/taofed/do71ct/tb7t0w) 57 | - [2020-10-12-用SVG实现一个优雅的提示框](https://fed.taobao.org/blog/taofed/do71ct/ghpnlx) 58 | - [2020-09-11-淘系前端互动引擎EVAJS架构与生态实现](https://fed.taobao.org/blog/taofed/do71ct/pg45el) 59 | - [2020-09-09-10-个你可能还不知道-VS-Code-使用技巧](https://fed.taobao.org/blog/taofed/do71ct/eonv5x) 60 | - [2020-09-04-我的前端成长之路:-在阿里七年,我的成长和迷茫](https://fed.taobao.org/blog/taofed/do71ct/ttpk5r) 61 | - [2020-09-01-JavaScript-深度学习---Hello-World](https://fed.taobao.org/blog/taofed/do71ct/er55la) 62 | - [2020-08-27-入职一年多的一些思考](https://fed.taobao.org/blog/taofed/do71ct/sxz5ap) 63 | - [2020-08-25-如何在应用架构中设计微前端方案---icestark](https://fed.taobao.org/blog/taofed/do71ct/xgmaz3) 64 | - [2020-08-21-阿里实习-90-天:从实习生的视角谈谈个人成长](https://fed.taobao.org/blog/taofed/do71ct/acbnym) 65 | - [2020-08-20-什么是人工智能自动编程?它只是一个噱头吗?](https://fed.taobao.org/blog/taofed/do71ct/clcgcc) 66 | - [2020-08-16-淘系运营工作台前端体系](https://fed.taobao.org/blog/taofed/do71ct/oyf9hm) 67 | - [2020-08-13-一起来玩玩WebGL--第二弹](https://fed.taobao.org/blog/taofed/do71ct/ghlebo) 68 | - [2020-08-10-我在阿里收获的N个成长](https://fed.taobao.org/blog/taofed/do71ct/reqhle) 69 | - [2020-08-01-可折叠Web可能会给我们带来的变化](https://fed.taobao.org/blog/taofed/do71ct/zbxacs) 70 | - [2020-07-31-2020年,该如何选择小程序框架](https://fed.taobao.org/blog/taofed/do71ct/sz7x0q) 71 | - [2020-07-29-业务前端如何突破困境](https://fed.taobao.org/blog/taofed/do71ct/front-end-problems) 72 | - [2020-07-21-现在开始:用你的Mac训练和部署一个图片分类模型](https://fed.taobao.org/blog/taofed/do71ct/gwrk8n) 73 | - [2020-07-20-你可能不太熟知的布局技巧](https://fed.taobao.org/blog/taofed/do71ct/cia993) 74 | - [2020-07-15-基于-React-打造高自由度的-IDE-布局系统](https://fed.taobao.org/blog/taofed/do71ct/hlxur7) 75 | - [2020-07-09-Iceworks:-多端研发套件](https://fed.taobao.org/blog/taofed/do71ct/wze27t) 76 | - [2020-07-09-频道业务黑科技--行业魔方](https://fed.taobao.org/blog/taofed/do71ct/qsv9lg) 77 | - [2020-07-06-P2C---需求智能出码的思考|618淘系前端技术分享](https://fed.taobao.org/blog/taofed/do71ct/kwa7d7) 78 | - [2020-07-03-资损防控-—-代码扫描技术揭秘](https://fed.taobao.org/blog/taofed/do71ct/qo1n4r) 79 | - [2020-06-02-Node.js-AsyncHooks-与异步回调上下文](https://fed.taobao.org/blog/taofed/do71ct/nodejs-asynchooks) 80 | - [2020-04-27-前端AB实验设计思路与实现原理](https://fed.taobao.org/blog/taofed/do71ct/frontend-ab-test) 81 | - [2020-03-19-2021届前端实习生内推](https://fed.taobao.org/blog/taofed/do71ct/2021-fontend-interpolate) 82 | - [2020-03-02-一个前端智能化的实践](https://fed.taobao.org/blog/taofed/do71ct/practice-in-frontend) 83 | - [2020-02-19-初识前端智能化](https://fed.taobao.org/blog/taofed/do71ct/start-to-know-intelligense) 84 | - [2020-02-18-前端与-Serverless-同行,哇哦视频这半年](https://fed.taobao.org/blog/taofed/do71ct/ftontend-and-serverless-forward) 85 | - [2020-01-19-当-SSR-遇上-Serverless,轻松实现页面瞬开](https://fed.taobao.org/blog/taofed/do71ct/rax-ssr-serverless-quicker) 86 | - [2019-12-04-iceworks:-从-GUI-开发工具到集成研发工作台](https://fed.taobao.org/blog/taofed/do71ct/icework-v1-to-v2) 87 | - [2019-12-02-Rax-PWA---快速升级-Web-体验](https://fed.taobao.org/blog/taofed/do71ct/rax-pwa-web) 88 | - [2019-12-02-GCanvas渲染引擎的演进](https://fed.taobao.org/blog/taofed/do71ct/gcanvs-engine-evolution) 89 | - [2019-11-28-ALive:助力阿里经济体,开启直播新纪元](https://fed.taobao.org/blog/taofed/do71ct/taofed-alive-linwan) 90 | - [2019-11-25-双十一模块-79.34%-的代码是怎样智能生成的](https://fed.taobao.org/blog/taofed/do71ct/how-to-generate-code-intelligent) 91 | - [2019-11-13-哇哦视频-❤️-FaaS---迁移前后的那些事儿](https://fed.taobao.org/blog/taofed/do71ct/wawo2faas) 92 | - [2019-11-13-哇哦视频-❤️-FaaS---迁移前后的那些事儿](https://fed.taobao.org/blog/2019/11/13/wawo2faas/) 93 | - [2019-10-16-Rax-1.0-版本更新与特性介绍](https://fed.taobao.org/blog/taofed/do71ct/rax-version-one-features) 94 | - [2019-10-15-Rax-1.0-版本更新与特性介绍](https://fed.taobao.org/blog/2019/10/15/rax-version-one-features/) 95 | - [2019-09-23-兼容vscode插件的主题服务](https://fed.taobao.org/blog/taofed/do71ct/custom-theme-in-vscode) 96 | - [2019-09-23-兼容vscode插件的主题服务](https://fed.taobao.org/blog/2019/09/23/custom-theme-in-vscode/) 97 | - [2019-09-03-响应至上:打造无卡顿的滚动列表](https://fed.taobao.org/blog/taofed/do71ct/make-infinite-scroll) 98 | - [2019-09-02-响应至上:打造无卡顿的滚动列表](https://fed.taobao.org/blog/2019/09/02/make-infinite-scroll/) 99 | - [2019-08-23-如何加快-Node.js-应用的启动速度](https://fed.taobao.org/blog/2019/08/23/speed-node-start-time/) 100 | - [2019-08-23-如何加快-Node.js-应用的启动速度](https://fed.taobao.org/blog/taofed/do71ct/speed-node-start-time) 101 | - [2019-08-16-VSCode原理解析---断点调试](https://fed.taobao.org/blog/taofed/do71ct/vscode-debug-source-analyse) 102 | - [2019-08-15-VSCode原理解析---断点调试](https://fed.taobao.org/blog/2019/08/15/vscode-debug-source-analyse/) 103 | - [2019-08-08-Fdcon-2018-分享:淘宝Web-3D应用与游戏开发实战](https://fed.taobao.org/blog/taofed/do71ct/fccon-share-taobao-3d-appandgame) 104 | - [2019-08-08-Fdcon-2018-分享:淘宝Web-3D应用与游戏开发实战](https://fed.taobao.org/blog/2019/08/08/fccon-share-taobao-3d-appandgame/) 105 | - [2019-06-06-大话-JavaScript-动画](https://fed.taobao.org/blog/taofed/do71ct/js-animation-base) 106 | - [2019-06-05-大话-JavaScript-动画](https://fed.taobao.org/blog/2019/06/05/js-animation-base/) 107 | - [2019-05-29-前端修炼小册-开放申请啦](https://fed.taobao.org/blog/taofed/do71ct/fed-learning-quizzes-apply) 108 | - [2019-05-28-前端修炼小册-开放申请啦](https://fed.taobao.org/blog/2019/05/28/fed-learning-quizzes-apply/) 109 | - [2019-05-18-使用-React-Hooks-代替-Redux](https://fed.taobao.org/blog/taofed/do71ct/use-the-react-hooks-instead-of-the-redux) 110 | - [2019-05-17-使用-React-Hooks-代替-Redux](https://fed.taobao.org/blog/2019/05/17/use-the-react-hooks-instead-of-the-redux/) 111 | - [2019-04-16-我们是如何管理一个-1w+-stars-的开源仓库的](https://fed.taobao.org/blog/taofed/do71ct/how-to-manager-a-1w-starts-repo) 112 | - [2019-04-15-我们是如何管理一个-1w+-stars-的开源仓库的](https://fed.taobao.org/blog/2019/04/15/how-to-manager-a-1w-starts-repo/) 113 | - [2019-03-19-Web端H.265播放器研发解密](https://fed.taobao.org/blog/taofed/do71ct/web-player-h265) 114 | - [2019-03-19-Web端H.265播放器研发解密](https://fed.taobao.org/blog/2019/03/19/web-player-h265/) 115 | - [2019-03-14-淘宝前端团队-2019-年实习生内部推荐通道已开启](https://fed.taobao.org/blog/taofed/do71ct/fed-2019) 116 | - [2019-03-13-淘宝前端团队-2019-年实习生内部推荐通道已开启](https://fed.taobao.org/blog/2019/03/13/fed-2019/) 117 | - [2019-01-08-imgcook-体验版发布](https://fed.taobao.org/blog/taofed/do71ct/imgcook) 118 | - [2019-01-08-imgcook-体验版发布](https://fed.taobao.org/blog/2019/01/08/imgcook/) 119 | - [2018-12-18-WebGL-纹理详解](https://fed.taobao.org/blog/taofed/do71ct/webgl-texture) 120 | - [2018-12-17-WebGL-纹理详解](https://fed.taobao.org/blog/2018/12/17/webgl-texture/) 121 | - [2018-11-28-前端架构杂思录:议-Function-Component-与-Hooks](https://fed.taobao.org/blog/taofed/do71ct/hooks-and-function-component) 122 | - [2018-11-27-前端架构杂思录:议-Function-Component-与-Hooks](https://fed.taobao.org/blog/2018/11/27/hooks-and-function-component/) 123 | - [2018-11-01-Atag---Web-Components-最佳实践](https://fed.taobao.org/blog/2018/11/01/a-tag/) 124 | - [2018-11-01-Atag---Web-Components-最佳实践](https://fed.taobao.org/blog/taofed/do71ct/a-tag) 125 | - [2018-08-09-Workbox-3:Service-Worker-可以如此简单](https://fed.taobao.org/blog/2018/08/09/workbox3/) 126 | - [2018-08-09-Workbox-3:Service-Worker-可以如此简单](https://fed.taobao.org/blog/taofed/do71ct/workbox3) 127 | - [2018-06-01-基于-BindingX-的富交互解决方案](https://fed.taobao.org/blog/taofed/do71ct/a-rich-interaction-solution-based-on-bindingx) 128 | - [2018-05-31-基于-BindingX-的富交互解决方案](https://fed.taobao.org/blog/2018/05/31/a-rich-interaction-solution-based-on-bindingx/) 129 | - [2018-05-08-活用-Shader,让你的页面更小,更炫,更快](https://fed.taobao.org/blog/2018/05/08/optimizing-page-performance-with-shader/) 130 | - [2018-03-13-Rax-系列教程(长列表)](https://fed.taobao.org/blog/2018/03/13/long-list-in-rax/) 131 | - [2018-03-05-G3D-——-Hybrid-环境下的-WebGL-3D-渲染引擎](https://fed.taobao.org/blog/2018/03/05/intro-to-g3d/) 132 | - [2018-02-27-淘宝技术部-2018-实习生内部推荐启动啦](https://fed.taobao.org/blog/2018/02/27/2018-intern-recruitment/) 133 | - [2018-02-06-Rax-系列教程(native-扫盲)](https://fed.taobao.org/blog/2018/02/06/rax-native-guide/) 134 | - [2018-01-23-实现一个-JavaScriptCore-的-debugger-——-iOS-篇](https://fed.taobao.org/blog/2018/01/23/implement-javascriptcore-debugger-ios/) 135 | - [2018-01-18-Rax-系列教程(上手)](https://fed.taobao.org/blog/2018/01/18/rax-in-action/) 136 | - [2018-01-12-构筑未来数据网---Pandora.js-的信息通路](https://fed.taobao.org/blog/2018/01/12/pandora-information-channel/) 137 | - [2018-01-05-跨越时代的度量衡---Pandora.js-的-Metrics-介绍](https://fed.taobao.org/blog/2018/01/05/pandora-metrics/) 138 | - [2017-12-21-让进程间通信更容易---Pandora.js-的-IPC-Hub](https://fed.taobao.org/blog/2017/12/21/pandora-ipc/) 139 | - [2017-12-19-Pandora.js-的-Service-机制](https://fed.taobao.org/blog/2017/12/19/pandora-service/) 140 | - [2017-12-13-管理-Node.js-进程从未如此优雅](https://fed.taobao.org/blog/2017/12/13/pandora/) 141 | - [2017-12-07-机器学习,Hello-World-from-Javascript!](https://fed.taobao.org/blog/2017/12/07/machine-learning/) 142 | - [2017-08-31-深入理解-Node.js-Stream-内部机制](https://fed.taobao.org/blog/2017/08/31/nodejs-stream/) 143 | - [2017-07-27-GCanvas-渲染引擎介绍](https://fed.taobao.org/blog/2017/07/27/gcanvas/) 144 | - [2017-07-05-LevelDB-实现分析](https://fed.taobao.org/blog/2017/07/05/leveldb-analysis/) 145 | - [2017-05-18-如何实现一个-Git-Diff-解析器](https://fed.taobao.org/blog/2017/05/18/how-to-display-git-diff/) 146 | - [2017-04-27-使用-ES-decorators-构建一致性-API](https://fed.taobao.org/blog/2017/04/27/building-consistent-api-with-es-decorators/) 147 | -------------------------------------------------------------------------------- /server/app.js: -------------------------------------------------------------------------------- 1 | const later = require('later') 2 | 3 | const handleUpdate = require('./update') 4 | 5 | // node app.js 设置自动更新 6 | later.date.localTime() 7 | later.setInterval(handleUpdate, { 8 | schedules: [ 9 | { h: [06], m: [00] }, 10 | { h: [08], m: [00] }, 11 | { h: [12], m: [00] }, 12 | { h: [18], m: [00] }, 13 | { h: [22], m: [00] }, 14 | ] 15 | }) -------------------------------------------------------------------------------- /server/fetch.js: -------------------------------------------------------------------------------- 1 | const Parser = require('rss-parser') 2 | const Async = require('async') 3 | 4 | const utils = require('./utils') 5 | 6 | require('dotenv').config() 7 | 8 | async function fetchFeed(rss) { 9 | const parser = new Parser({ 10 | headers: { 11 | 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1' 12 | }, 13 | }) 14 | 15 | try { 16 | const feed = await parser.parseURL(rss) 17 | if (feed) { 18 | utils.logSuccess('成功 RSS: ' + rss) 19 | return feed 20 | } 21 | } catch (e) {} 22 | 23 | utils.logWarn('失败 RSS: ' + rss) 24 | return true 25 | } 26 | 27 | async function initFetch(rssItem, onFinish) { 28 | const envRss = process.env['RSS_' + rssItem.id] 29 | let rssArray = rssItem.rss 30 | 31 | if (typeof rssArray === 'string') { 32 | rssArray = [rssArray] 33 | } 34 | 35 | if (envRss) { 36 | rssArray.unshift(envRss) 37 | } 38 | 39 | const tasks = rssArray.map((rss) => ((callback) => { 40 | ((async () => { 41 | const feed = await fetchFeed(rss) 42 | 43 | if (feed === true) { 44 | callback(true) 45 | } else { 46 | callback(null, feed) 47 | } 48 | })()) 49 | })) 50 | 51 | utils.log('开始 RSS: ' + rssItem.title) 52 | 53 | return new Promise((resolve) => { 54 | Async.tryEach(tasks, (err, res) => { 55 | utils.log('完成 RSS: ' + rssItem.title) 56 | resolve(err ? null : res) 57 | }) 58 | }) 59 | } 60 | 61 | module.exports = initFetch -------------------------------------------------------------------------------- /server/once.js: -------------------------------------------------------------------------------- 1 | const handleUpdate = require('./update') 2 | 3 | // node once.js 执行一次,手动更新 4 | handleUpdate() -------------------------------------------------------------------------------- /server/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "front-end-rss", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "dependencies": { 6 | "async": "^2.6.1", 7 | "chalk": "^4.1.2", 8 | "dotenv": "^10.0.0", 9 | "fs-extra": "^10.0.0", 10 | "later": "^1.2.0", 11 | "moment": "^2.22.2", 12 | "query-string": "^6.8.1", 13 | "rss-parser": "^3.4.3", 14 | "simple-git": "^1.102.0", 15 | "underscore": "^1.9.1" 16 | }, 17 | "description": "front-end-rss", 18 | "devDependencies": {}, 19 | "scripts": { 20 | "test": "echo \"Error: no test specified\" && exit 1" 21 | }, 22 | "author": "ChanceYu", 23 | "license": "MIT", 24 | "repository": { 25 | "type": "git", 26 | "url": "git://github.com/hzhuhao/web-front-end-rss.git" 27 | }, 28 | "bugs": { 29 | "url": "https://github.com/hzhuhao/web-front-end-rss/issues" 30 | }, 31 | "homepage": "https://github.com/hzhuhao/web-front-end-rss#readme" 32 | } 33 | -------------------------------------------------------------------------------- /server/update.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs-extra') 2 | const Async = require('async') 3 | const moment = require('moment') 4 | const Git = require('simple-git') 5 | 6 | const utils = require('./utils') 7 | const writemd = require('./writemd') 8 | const fetch = require('./fetch') 9 | 10 | const { 11 | RESP_PATH, 12 | RSS_PATH, 13 | LINKS_PATH, 14 | } = utils.PATH 15 | 16 | let rssJson = null 17 | let linksJson = null 18 | let newData = null 19 | 20 | /** 21 | * 更新 git 仓库 22 | */ 23 | function handleUpdate() { 24 | utils.log('开始更新抓取') 25 | 26 | Git(RESP_PATH) 27 | .pull() 28 | .exec(handleFeed) 29 | } 30 | 31 | /** 32 | * 提交修改到 git 仓库 33 | */ 34 | function handleCommit() { 35 | utils.log('完成抓取,即将上传') 36 | 37 | Git(RESP_PATH) 38 | .add('./*') 39 | .commit('更新: ' + newData.titles.join('、')) 40 | .push(['-u', 'origin', 'master'], () => utils.logSuccess('完成抓取和上传!')) 41 | } 42 | 43 | /** 44 | * 处理订阅源 45 | */ 46 | function handleFeed() { 47 | rssJson = fs.readJsonSync(RSS_PATH) 48 | linksJson = fs.readJsonSync(LINKS_PATH) 49 | newData = { 50 | length: 0, 51 | titles: [], 52 | rss: {}, 53 | links: {} 54 | } 55 | 56 | const tasks = rssJson.map((rssItem, rssIndex) => ((callback) => { 57 | ((async () => { 58 | const feed = await fetch(rssItem) 59 | if (feed) { 60 | const items = linksJson[rssIndex].items || [] 61 | const newItems = feed.items.reduce((prev, curr) => { 62 | const exist = items.find((el) => utils.isSameLink(el.link, curr.link)) 63 | if (exist) { 64 | return prev 65 | } else { 66 | let date = moment().format('YYYY-MM-DD') 67 | 68 | try { 69 | date = moment(curr.isoDate).format('YYYY-MM-DD') 70 | } catch (e) {} 71 | 72 | newData.rss[rssItem.title] = true 73 | newData.links[curr.link] = true 74 | 75 | return [...prev, { 76 | title: curr.title, 77 | link: curr.link, 78 | date 79 | }] 80 | } 81 | }, []) 82 | 83 | if (newItems.length) { 84 | utils.logSuccess('更新 RSS: ' + rssItem.title) 85 | newData.titles.push(rssItem.title) 86 | newData.length += newItems.length 87 | linksJson[rssIndex] = { 88 | title: rssItem.title, 89 | items: newItems.concat(items).sort(function (a, b) { 90 | return a.date < b.date ? 1 : -1 91 | }) 92 | } 93 | } 94 | } 95 | callback(null) 96 | })()) 97 | })) 98 | 99 | Async.series(tasks, () => { 100 | if (newData.length) { 101 | fs.outputJsonSync(LINKS_PATH, linksJson, { 102 | spaces: 2 103 | }) 104 | writemd(newData, linksJson) 105 | handleCommit() 106 | } else { 107 | utils.logSuccess('无需更新') 108 | } 109 | rssJson = null 110 | linksJson = null 111 | newData = null 112 | }) 113 | } 114 | 115 | module.exports = handleUpdate -------------------------------------------------------------------------------- /server/utils.js: -------------------------------------------------------------------------------- 1 | const path = require('path') 2 | const moment = require('moment') 3 | const chalk = require('chalk') 4 | const queryString = require('query-string') 5 | 6 | const RESP_ROOT = '../' 7 | const RESP_PATH = path.join(RESP_ROOT) 8 | const RSS_PATH = path.join(RESP_ROOT + '/data/rss.json') 9 | const LINKS_PATH = path.join(RESP_ROOT + '/data/links.json') 10 | const TAGS_PATH = path.join(RESP_ROOT + '/data/tags.json') 11 | const README_PATH = path.join(RESP_ROOT + '/README.md') 12 | const README_TEMPLATE_PATH = path.join(RESP_ROOT + '/templates/README.md') 13 | const TAGS_MD_PATH = path.join(RESP_ROOT + '/TAGS.md') 14 | const TAGS_TEMPLATE_PATH = path.join(RESP_ROOT + '/templates/TAGS.md') 15 | const DETAILS_TEMPLATE_PATH = path.join(RESP_ROOT + '/templates/DETAILS.md') 16 | 17 | module.exports = { 18 | /** 19 | * 文件路径 20 | */ 21 | PATH: { 22 | RESP_PATH, 23 | RSS_PATH, 24 | LINKS_PATH, 25 | TAGS_PATH, 26 | README_PATH, 27 | README_TEMPLATE_PATH, 28 | TAGS_MD_PATH, 29 | TAGS_TEMPLATE_PATH, 30 | DETAILS_TEMPLATE_PATH, 31 | }, 32 | 33 | getLogPrefix() { 34 | return this.getNowDate() + ' - ' 35 | }, 36 | 37 | log(msg) { 38 | console.log(this.getLogPrefix() + msg) 39 | }, 40 | 41 | logInfo(msg) { 42 | this.log(chalk.blue(msg)) 43 | }, 44 | 45 | logWarn(msg) { 46 | this.log(chalk.yellow(msg)) 47 | }, 48 | 49 | logSuccess(msg) { 50 | this.log(chalk.green(msg)) 51 | }, 52 | 53 | /** 54 | * 格式化标题 55 | */ 56 | formatTitle(title) { 57 | return title.replace('', '').replace(/[\[\]\(\)]/g, '').replace(/\s+/g, '-') 58 | }, 59 | 60 | /** 61 | * 格式化时间 62 | */ 63 | getNowDate() { 64 | return moment().format('YYYY-MM-DD HH:mm:ss') 65 | }, 66 | 67 | /** 68 | * 判断链接是否存在 69 | * @param link 70 | * @param compare 71 | */ 72 | isSameLink(link, compare) { 73 | link = link.replace(/&/g, '&') 74 | compare = compare.replace(/&/g, '&') 75 | 76 | const oLink = queryString.parseUrl(link) 77 | const oCompare = queryString.parseUrl(compare) 78 | const reWx = /mp\.weixin\.qq\.com/ 79 | 80 | if (reWx.test(oLink.url) && reWx.test(oCompare.url)) { 81 | return oLink.query.sn === oCompare.query.sn && oLink.query.mid === oCompare.query.mid 82 | } else { 83 | return link === compare 84 | } 85 | } 86 | } -------------------------------------------------------------------------------- /server/writemd.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs-extra') 2 | const path = require('path') 3 | const _ = require('underscore') 4 | 5 | const utils = require('./utils') 6 | 7 | const { 8 | RESP_PATH, 9 | TAGS_PATH, 10 | README_PATH, 11 | README_TEMPLATE_PATH, 12 | TAGS_MD_PATH, 13 | TAGS_TEMPLATE_PATH, 14 | DETAILS_TEMPLATE_PATH, 15 | } = utils.PATH 16 | 17 | /** 18 | * 渲染 README.md 文件 19 | */ 20 | function handleREADME(newData, linksJson) { 21 | let content = fs.readFileSync(README_TEMPLATE_PATH) 22 | 23 | let compiled = _.template(content.toString()) 24 | const currentDate = utils.getNowDate() 25 | 26 | content = compiled({ 27 | newData, 28 | linksJson, 29 | currentDate, 30 | formatTitle: utils.formatTitle, 31 | }) 32 | 33 | fs.writeFileSync(README_PATH, content, 'utf-8') 34 | } 35 | 36 | /** 37 | * 渲染 TAGS.md 文件 38 | */ 39 | function handleTags(newData, linksJson) { 40 | const currentDate = utils.getNowDate() 41 | let tags = fs.readJsonSync(TAGS_PATH) 42 | 43 | tags.forEach((tag, i) => { 44 | tags[i].items = [] 45 | 46 | linksJson.forEach((o) => { 47 | o.items.forEach((item) => { 48 | if (!item.rssTitle && (new RegExp(tag.keywords, 'gi')).test(item.title)) { 49 | item.rssTitle = o.title 50 | tags[i].items.push(item) 51 | } 52 | }) 53 | }) 54 | 55 | // details/tags/file.md 56 | let detailTpl = fs.readFileSync(DETAILS_TEMPLATE_PATH).toString() 57 | let detailCompiled = _.template(detailTpl) 58 | const filename = tag.filename + '.md' 59 | 60 | const detailContent = detailCompiled({ 61 | currentDate, 62 | formatTitle: utils.formatTitle, 63 | title: tags[i].tag, 64 | keywords: tags[i].keywords, 65 | items: tags[i].items 66 | }) 67 | 68 | fs.writeFileSync(path.join(RESP_PATH, 'details/tags/', filename), detailContent, 'utf-8') 69 | 70 | }) 71 | 72 | let content = fs.readFileSync(TAGS_TEMPLATE_PATH) 73 | let compiled = _.template(content.toString()) 74 | 75 | content = compiled({ 76 | currentDate, 77 | formatTitle: utils.formatTitle, 78 | tags 79 | }) 80 | 81 | fs.writeFileSync(TAGS_MD_PATH, content, 'utf-8') 82 | } 83 | 84 | /** 85 | * 生成每个详情页面 86 | */ 87 | function handleDetails(newData, linksJson) { 88 | const currentDate = utils.getNowDate() 89 | let content = fs.readFileSync(DETAILS_TEMPLATE_PATH).toString() 90 | let compiled = _.template(content) 91 | 92 | linksJson.forEach((source) => { 93 | if (source.title in newData.rss) { 94 | source.currentDate = currentDate 95 | source.formatTitle = utils.formatTitle 96 | 97 | content = compiled(source) 98 | 99 | let filename = source.title.replace(/[\\\/]/g, '') 100 | filename += '.md' 101 | 102 | fs.writeFileSync(path.join(RESP_PATH, 'details', filename), content, 'utf-8') 103 | } 104 | }) 105 | } 106 | 107 | module.exports = function (newData, linksJson) { 108 | handleREADME(newData, linksJson) 109 | handleTags(newData, linksJson) 110 | handleDetails(newData, linksJson) 111 | } 112 | -------------------------------------------------------------------------------- /site/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["env", { 4 | "modules": false, 5 | "targets": { 6 | "browsers": ["> 1%", "last 2 versions", "not ie <= 8"] 7 | } 8 | }], 9 | "stage-2" 10 | ], 11 | "plugins": [ 12 | ["import", { 13 | "libraryName": "vant", 14 | "libraryDirectory": "es", 15 | "style": true 16 | }], 17 | "transform-vue-jsx", 18 | "transform-runtime" 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /site/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /site/.eslintignore: -------------------------------------------------------------------------------- 1 | /build/ 2 | /config/ 3 | /dist/ 4 | /*.js 5 | -------------------------------------------------------------------------------- /site/.eslintrc.js: -------------------------------------------------------------------------------- 1 | // https://eslint.org/docs/user-guide/configuring 2 | 3 | module.exports = { 4 | root: true, 5 | parserOptions: { 6 | parser: 'babel-eslint' 7 | }, 8 | env: { 9 | browser: true, 10 | }, 11 | extends: [ 12 | // https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention 13 | // consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules. 14 | 'plugin:vue/essential', 15 | // https://github.com/standard/standard/blob/master/docs/RULES-en.md 16 | 'standard' 17 | ], 18 | // required to lint *.vue files 19 | plugins: [ 20 | 'vue' 21 | ], 22 | // add your custom rules here 23 | rules: { 24 | // allow async-await 25 | 'generator-star-spacing': 'off', 26 | // allow debugger during development 27 | 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off' 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /site/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | /dist/ 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | 8 | # Editor directories and files 9 | .idea 10 | .vscode 11 | *.suo 12 | *.ntvs* 13 | *.njsproj 14 | *.sln 15 | -------------------------------------------------------------------------------- /site/.postcssrc.js: -------------------------------------------------------------------------------- 1 | // https://github.com/michael-ciniawsky/postcss-load-config 2 | 3 | module.exports = { 4 | "plugins": { 5 | "postcss-import": {}, 6 | "postcss-url": {}, 7 | // to edit target browsers: use "browserslist" field in package.json 8 | "autoprefixer": { 9 | browsers: ['Android >= 4.0', 'iOS >= 7'] 10 | }, 11 | 'postcss-pxtorem': { 12 | rootValue: 16, 13 | propList: ['*'] 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /site/.yarnrc: -------------------------------------------------------------------------------- 1 | sass_binary_site "https://npm.taobao.org/mirrors/node-sass/" 2 | phantomjs_cdnurl "https://npm.taobao.org/mirrors/phantomjs/" 3 | electron_mirror "https://npm.taobao.org/mirrors/electron/" 4 | registry "https://registry.npmjs.org" 5 | -------------------------------------------------------------------------------- /site/README.md: -------------------------------------------------------------------------------- 1 | # site 2 | 3 | > A Vue.js project 4 | 5 | ## Build Setup 6 | 7 | ``` bash 8 | # install dependencies 9 | npm install 10 | 11 | # serve with hot reload at localhost:8080 12 | npm run dev 13 | 14 | # build for production with minification 15 | npm run build 16 | 17 | # build for production and view the bundle analyzer report 18 | npm run build --report 19 | ``` 20 | 21 | For a detailed explanation on how things work, check out the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader). 22 | -------------------------------------------------------------------------------- /site/api/index.js: -------------------------------------------------------------------------------- 1 | const crypto = require('crypto'); 2 | const links = require('../../data/links.json'); 3 | 4 | let linksMap = {}; 5 | 6 | links.forEach((item) => { 7 | item.items.forEach((ite) => { 8 | const md5 = crypto.createHash('md5'); 9 | const result = md5.update(ite.link).digest('hex'); 10 | 11 | linksMap[result] = ite.link; 12 | }); 13 | }); 14 | 15 | module.exports = (req, res) => { 16 | const { id } = req.query; 17 | let link = '/'; 18 | 19 | if(id && (id in linksMap)){ 20 | link = linksMap[id]; 21 | } 22 | 23 | res.redirect(301, link || '/'); 24 | } 25 | -------------------------------------------------------------------------------- /site/build/build.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | require('./check-versions')() 3 | 4 | process.env.NODE_ENV = 'production' 5 | 6 | const ora = require('ora') 7 | const rm = require('rimraf') 8 | const path = require('path') 9 | const chalk = require('chalk') 10 | const webpack = require('webpack') 11 | const config = require('../config') 12 | const webpackConfig = require('./webpack.prod.conf') 13 | const createFiles = require('./createFiles') 14 | 15 | const spinner = ora('building for production...') 16 | spinner.start() 17 | 18 | rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => { 19 | if (err) throw err 20 | webpack(webpackConfig, (err, stats) => { 21 | spinner.stop() 22 | if (err) throw err 23 | process.stdout.write(stats.toString({ 24 | colors: true, 25 | modules: false, 26 | children: false, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build. 27 | chunks: false, 28 | chunkModules: false 29 | }) + '\n\n') 30 | 31 | if (stats.hasErrors()) { 32 | console.log(chalk.red(' Build failed with errors.\n')) 33 | process.exit(1) 34 | } 35 | 36 | createFiles() 37 | 38 | console.log(chalk.cyan(' Build complete.\n')) 39 | console.log(chalk.yellow( 40 | ' Tip: built files are meant to be served over an HTTP server.\n' + 41 | ' Opening index.html over file:// won\'t work.\n' 42 | )) 43 | }) 44 | }) 45 | -------------------------------------------------------------------------------- /site/build/check-versions.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const chalk = require('chalk') 3 | const semver = require('semver') 4 | const packageConfig = require('../package.json') 5 | const shell = require('shelljs') 6 | 7 | function exec (cmd) { 8 | return require('child_process').execSync(cmd).toString().trim() 9 | } 10 | 11 | const versionRequirements = [ 12 | { 13 | name: 'node', 14 | currentVersion: semver.clean(process.version), 15 | versionRequirement: packageConfig.engines.node 16 | } 17 | ] 18 | 19 | if (shell.which('npm')) { 20 | versionRequirements.push({ 21 | name: 'npm', 22 | currentVersion: exec('npm --version'), 23 | versionRequirement: packageConfig.engines.npm 24 | }) 25 | } 26 | 27 | module.exports = function () { 28 | const warnings = [] 29 | 30 | for (let i = 0; i < versionRequirements.length; i++) { 31 | const mod = versionRequirements[i] 32 | 33 | if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { 34 | warnings.push(mod.name + ': ' + 35 | chalk.red(mod.currentVersion) + ' should be ' + 36 | chalk.green(mod.versionRequirement) 37 | ) 38 | } 39 | } 40 | 41 | if (warnings.length) { 42 | console.log('') 43 | console.log(chalk.yellow('To use this template, you must update following to modules:')) 44 | console.log() 45 | 46 | for (let i = 0; i < warnings.length; i++) { 47 | const warning = warnings[i] 48 | console.log(' ' + warning) 49 | } 50 | 51 | console.log() 52 | process.exit(1) 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /site/build/createFiles.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs-extra') 2 | const path = require('path') 3 | const zlib = require('zlib') 4 | const dayjs = require('dayjs') 5 | 6 | const data = require('./data') 7 | 8 | const { RSS_DATA, TAGS_DATA, LINKS_DATA } = data 9 | 10 | const filePath = path.join(__dirname, '../dist/data.json') 11 | 12 | function createFiles(){ 13 | fs.outputJsonSync(filePath, { 14 | updateTime: dayjs().format('YYYY-MM-DD HH:mm'), 15 | rss: RSS_DATA, 16 | tags: TAGS_DATA, 17 | links: LINKS_DATA, 18 | }); 19 | 20 | compress('gz') 21 | compress('br') 22 | } 23 | 24 | function compress(ext){ 25 | const dest = ext === 'gz' ? zlib.createGzip() : zlib.createBrotliCompress(); 26 | const rs = fs.createReadStream(filePath) 27 | const ws = fs.createWriteStream(`${filePath}.${ext}`) 28 | 29 | rs.pipe(dest).pipe(ws) 30 | } 31 | 32 | module.exports = createFiles 33 | -------------------------------------------------------------------------------- /site/build/data.js: -------------------------------------------------------------------------------- 1 | const RSS_DATA = require('../../data/rss.json') 2 | const TAGS_DATA = require('../../data/tags.json') 3 | const LINKS_DATA = require('../../data/links.json') 4 | 5 | module.exports = { 6 | RSS_DATA, 7 | TAGS_DATA, 8 | LINKS_DATA 9 | } 10 | -------------------------------------------------------------------------------- /site/build/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hzhuhao/web-front-end-rss/02be80e2bda94d5826acd38cb68a712e921b0dc3/site/build/logo.png -------------------------------------------------------------------------------- /site/build/template-parameters.js: -------------------------------------------------------------------------------- 1 | const data = require('./data') 2 | 3 | const { RSS_DATA, TAGS_DATA, LINKS_DATA } = data 4 | 5 | module.exports = { 6 | RSS_DATA: JSON.stringify(RSS_DATA), 7 | TAGS_DATA: JSON.stringify(TAGS_DATA), 8 | LINKS_DATA: JSON.stringify(LINKS_DATA) 9 | } 10 | -------------------------------------------------------------------------------- /site/build/utils.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const path = require('path') 3 | const config = require('../config') 4 | const ExtractTextPlugin = require('extract-text-webpack-plugin') 5 | const packageConfig = require('../package.json') 6 | 7 | exports.assetsPath = function (_path) { 8 | const assetsSubDirectory = process.env.NODE_ENV === 'production' 9 | ? config.build.assetsSubDirectory 10 | : config.dev.assetsSubDirectory 11 | 12 | return path.posix.join(assetsSubDirectory, _path) 13 | } 14 | 15 | exports.cssLoaders = function (options) { 16 | options = options || {} 17 | 18 | const cssLoader = { 19 | loader: 'css-loader', 20 | options: { 21 | sourceMap: options.sourceMap 22 | } 23 | } 24 | 25 | const postcssLoader = { 26 | loader: 'postcss-loader', 27 | options: { 28 | sourceMap: options.sourceMap 29 | } 30 | } 31 | 32 | // generate loader string to be used with extract text plugin 33 | function generateLoaders (loader, loaderOptions) { 34 | const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader] 35 | 36 | if (loader) { 37 | loaders.push({ 38 | loader: loader + '-loader', 39 | options: Object.assign({}, loaderOptions, { 40 | sourceMap: options.sourceMap 41 | }) 42 | }) 43 | } 44 | 45 | // Extract CSS when that option is specified 46 | // (which is the case during production build) 47 | if (options.extract) { 48 | return ExtractTextPlugin.extract({ 49 | use: loaders, 50 | fallback: 'vue-style-loader' 51 | }) 52 | } else { 53 | return ['vue-style-loader'].concat(loaders) 54 | } 55 | } 56 | 57 | // https://vue-loader.vuejs.org/en/configurations/extract-css.html 58 | return { 59 | css: generateLoaders(), 60 | postcss: generateLoaders(), 61 | less: generateLoaders('less'), 62 | // sass: generateLoaders('sass', { indentedSyntax: true }), 63 | // scss: generateLoaders('sass'), 64 | stylus: generateLoaders('stylus'), 65 | styl: generateLoaders('stylus') 66 | } 67 | } 68 | 69 | // Generate loaders for standalone style files (outside of .vue) 70 | exports.styleLoaders = function (options) { 71 | const output = [] 72 | const loaders = exports.cssLoaders(options) 73 | 74 | for (const extension in loaders) { 75 | const loader = loaders[extension] 76 | output.push({ 77 | test: new RegExp('\\.' + extension + '$'), 78 | use: loader 79 | }) 80 | } 81 | 82 | return output 83 | } 84 | 85 | exports.createNotifierCallback = () => { 86 | const notifier = require('node-notifier') 87 | 88 | return (severity, errors) => { 89 | if (severity !== 'error') return 90 | 91 | const error = errors[0] 92 | const filename = error.file && error.file.split('!').pop() 93 | 94 | notifier.notify({ 95 | title: packageConfig.name, 96 | message: severity + ': ' + error.name, 97 | subtitle: filename || '', 98 | icon: path.join(__dirname, 'logo.png') 99 | }) 100 | } 101 | } 102 | -------------------------------------------------------------------------------- /site/build/vue-loader.conf.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const utils = require('./utils') 3 | const config = require('../config') 4 | const isProduction = process.env.NODE_ENV === 'production' 5 | const sourceMapEnabled = isProduction 6 | ? config.build.productionSourceMap 7 | : config.dev.cssSourceMap 8 | 9 | module.exports = { 10 | loaders: utils.cssLoaders({ 11 | sourceMap: sourceMapEnabled, 12 | extract: isProduction 13 | }), 14 | cssSourceMap: sourceMapEnabled, 15 | cacheBusting: config.dev.cacheBusting, 16 | transformToRequire: { 17 | video: ['src', 'poster'], 18 | source: 'src', 19 | img: 'src', 20 | image: 'xlink:href' 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /site/build/webpack.base.conf.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const path = require('path') 3 | const utils = require('./utils') 4 | const config = require('../config') 5 | const vueLoaderConfig = require('./vue-loader.conf') 6 | 7 | function resolve (dir) { 8 | return path.join(__dirname, '..', dir) 9 | } 10 | 11 | const createLintingRule = () => ({ 12 | test: /\.(js|vue)$/, 13 | loader: 'eslint-loader', 14 | enforce: 'pre', 15 | include: [resolve('src'), resolve('test')], 16 | options: { 17 | formatter: require('eslint-friendly-formatter'), 18 | emitWarning: !config.dev.showEslintErrorsInOverlay 19 | } 20 | }) 21 | 22 | module.exports = { 23 | context: path.resolve(__dirname, '../'), 24 | entry: { 25 | app: './src/main.js' 26 | }, 27 | output: { 28 | path: config.build.assetsRoot, 29 | filename: '[name].js', 30 | publicPath: process.env.NODE_ENV === 'production' 31 | ? config.build.assetsPublicPath 32 | : config.dev.assetsPublicPath 33 | }, 34 | resolve: { 35 | extensions: ['.js', '.vue', '.json'], 36 | alias: { 37 | 'vue$': 'vue/dist/vue.esm.js', 38 | '@': resolve('src'), 39 | } 40 | }, 41 | module: { 42 | rules: [ 43 | ...(config.dev.useEslint ? [createLintingRule()] : []), 44 | { 45 | test: /\.vue$/, 46 | loader: 'vue-loader', 47 | options: vueLoaderConfig 48 | }, 49 | { 50 | test: /\.js$/, 51 | loader: 'babel-loader', 52 | include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client')] 53 | }, 54 | { 55 | test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, 56 | loader: 'url-loader', 57 | options: { 58 | limit: 10000, 59 | name: utils.assetsPath('img/[name].[hash:7].[ext]') 60 | } 61 | }, 62 | { 63 | test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/, 64 | loader: 'url-loader', 65 | options: { 66 | limit: 10000, 67 | name: utils.assetsPath('media/[name].[hash:7].[ext]') 68 | } 69 | }, 70 | { 71 | test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, 72 | loader: 'url-loader', 73 | options: { 74 | limit: 10000, 75 | name: utils.assetsPath('fonts/[name].[hash:7].[ext]') 76 | } 77 | } 78 | ] 79 | }, 80 | node: { 81 | // prevent webpack from injecting useless setImmediate polyfill because Vue 82 | // source contains it (although only uses it if it's native). 83 | setImmediate: false, 84 | // prevent webpack from injecting mocks to Node native modules 85 | // that does not make sense for the client 86 | dgram: 'empty', 87 | fs: 'empty', 88 | net: 'empty', 89 | tls: 'empty', 90 | child_process: 'empty' 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /site/build/webpack.dev.conf.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const utils = require('./utils') 3 | const webpack = require('webpack') 4 | const config = require('../config') 5 | const merge = require('webpack-merge') 6 | const path = require('path') 7 | const baseWebpackConfig = require('./webpack.base.conf') 8 | const CopyWebpackPlugin = require('copy-webpack-plugin') 9 | const HtmlWebpackPlugin = require('html-webpack-plugin') 10 | const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin') 11 | const portfinder = require('portfinder') 12 | 13 | const HOST = process.env.HOST 14 | const PORT = process.env.PORT && Number(process.env.PORT) 15 | 16 | const templateParameters = require('./template-parameters') 17 | 18 | const devWebpackConfig = merge(baseWebpackConfig, { 19 | module: { 20 | rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap, usePostCSS: true }) 21 | }, 22 | // cheap-module-eval-source-map is faster for development 23 | devtool: config.dev.devtool, 24 | 25 | // these devServer options should be customized in /config/index.js 26 | devServer: { 27 | clientLogLevel: 'warning', 28 | historyApiFallback: { 29 | rewrites: [ 30 | { from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, 'index.html') } 31 | ] 32 | }, 33 | hot: true, 34 | contentBase: false, // since we use CopyWebpackPlugin. 35 | compress: true, 36 | host: HOST || config.dev.host, 37 | port: PORT || config.dev.port, 38 | open: config.dev.autoOpenBrowser, 39 | overlay: config.dev.errorOverlay 40 | ? { warnings: false, errors: true } 41 | : false, 42 | publicPath: config.dev.assetsPublicPath, 43 | proxy: config.dev.proxyTable, 44 | quiet: true, // necessary for FriendlyErrorsPlugin 45 | watchOptions: { 46 | poll: config.dev.poll 47 | } 48 | }, 49 | plugins: [ 50 | new webpack.DefinePlugin({ 51 | 'process.env': require('../config/dev.env') 52 | }), 53 | new webpack.HotModuleReplacementPlugin(), 54 | new webpack.NamedModulesPlugin(), // HMR shows correct file names in console on update. 55 | new webpack.NoEmitOnErrorsPlugin(), 56 | // https://github.com/ampedandwired/html-webpack-plugin 57 | new HtmlWebpackPlugin({ 58 | filename: 'index.html', 59 | template: 'index.html', 60 | inject: true, 61 | templateParameters 62 | }), 63 | // copy custom static assets 64 | new CopyWebpackPlugin([ 65 | { 66 | from: path.resolve(__dirname, '../static'), 67 | to: config.dev.assetsSubDirectory, 68 | ignore: ['.*'] 69 | } 70 | ]) 71 | ] 72 | }) 73 | 74 | module.exports = new Promise((resolve, reject) => { 75 | portfinder.basePort = process.env.PORT || config.dev.port 76 | portfinder.getPort((err, port) => { 77 | if (err) { 78 | reject(err) 79 | } else { 80 | // publish the new Port, necessary for e2e tests 81 | process.env.PORT = port 82 | // add port to devServer config 83 | devWebpackConfig.devServer.port = port 84 | 85 | // Add FriendlyErrorsPlugin 86 | devWebpackConfig.plugins.push(new FriendlyErrorsPlugin({ 87 | compilationSuccessInfo: { 88 | messages: [`Your application is running here: http://${devWebpackConfig.devServer.host}:${port}`] 89 | }, 90 | onErrors: config.dev.notifyOnErrors 91 | ? utils.createNotifierCallback() 92 | : undefined 93 | })) 94 | 95 | resolve(devWebpackConfig) 96 | } 97 | }) 98 | }) 99 | -------------------------------------------------------------------------------- /site/build/webpack.prod.conf.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const path = require('path') 3 | const utils = require('./utils') 4 | const webpack = require('webpack') 5 | const config = require('../config') 6 | const merge = require('webpack-merge') 7 | const baseWebpackConfig = require('./webpack.base.conf') 8 | const CopyWebpackPlugin = require('copy-webpack-plugin') 9 | const HtmlWebpackPlugin = require('html-webpack-plugin') 10 | const ExtractTextPlugin = require('extract-text-webpack-plugin') 11 | const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin') 12 | const UglifyJsPlugin = require('uglifyjs-webpack-plugin') 13 | 14 | const env = require('../config/prod.env') 15 | 16 | const templateParameters = require('./template-parameters') 17 | 18 | const webpackConfig = merge(baseWebpackConfig, { 19 | module: { 20 | rules: utils.styleLoaders({ 21 | sourceMap: config.build.productionSourceMap, 22 | extract: true, 23 | usePostCSS: true 24 | }) 25 | }, 26 | devtool: config.build.productionSourceMap ? config.build.devtool : false, 27 | output: { 28 | path: config.build.assetsRoot, 29 | filename: utils.assetsPath('js/[name].[chunkhash].js'), 30 | chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') 31 | }, 32 | plugins: [ 33 | // http://vuejs.github.io/vue-loader/en/workflow/production.html 34 | new webpack.DefinePlugin({ 35 | 'process.env': env 36 | }), 37 | new UglifyJsPlugin({ 38 | uglifyOptions: { 39 | compress: { 40 | warnings: false 41 | } 42 | }, 43 | sourceMap: config.build.productionSourceMap, 44 | parallel: true 45 | }), 46 | // extract css into its own file 47 | new ExtractTextPlugin({ 48 | filename: utils.assetsPath('css/[name].[contenthash].css'), 49 | // Setting the following option to `false` will not extract CSS from codesplit chunks. 50 | // Their CSS will instead be inserted dynamically with style-loader when the codesplit chunk has been loaded by webpack. 51 | // It's currently set to `true` because we are seeing that sourcemaps are included in the codesplit bundle as well when it's `false`, 52 | // increasing file size: https://github.com/vuejs-templates/webpack/issues/1110 53 | allChunks: true 54 | }), 55 | // Compress extracted CSS. We are using this plugin so that possible 56 | // duplicated CSS from different components can be deduped. 57 | new OptimizeCSSPlugin({ 58 | cssProcessorOptions: config.build.productionSourceMap 59 | ? { safe: true, map: { inline: false } } 60 | : { safe: true } 61 | }), 62 | // generate dist index.html with correct asset hash for caching. 63 | // you can customize output by editing /index.html 64 | // see https://github.com/ampedandwired/html-webpack-plugin 65 | new HtmlWebpackPlugin({ 66 | filename: config.build.index, 67 | template: 'index.html', 68 | inject: true, 69 | templateParameters, 70 | minify: { 71 | removeComments: true, 72 | collapseWhitespace: true, 73 | removeAttributeQuotes: true 74 | // more options: 75 | // https://github.com/kangax/html-minifier#options-quick-reference 76 | }, 77 | // necessary to consistently work with multiple chunks via CommonsChunkPlugin 78 | chunksSortMode: 'dependency' 79 | }), 80 | // keep module.id stable when vendor modules does not change 81 | new webpack.HashedModuleIdsPlugin(), 82 | // enable scope hoisting 83 | new webpack.optimize.ModuleConcatenationPlugin(), 84 | // split vendor js into its own file 85 | new webpack.optimize.CommonsChunkPlugin({ 86 | name: 'vendor', 87 | minChunks (module) { 88 | // any required modules inside node_modules are extracted to vendor 89 | return ( 90 | module.resource && 91 | /\.js$/.test(module.resource) && 92 | module.resource.indexOf( 93 | path.join(__dirname, '../node_modules') 94 | ) === 0 95 | ) 96 | } 97 | }), 98 | // extract webpack runtime and module manifest to its own file in order to 99 | // prevent vendor hash from being updated whenever app bundle is updated 100 | new webpack.optimize.CommonsChunkPlugin({ 101 | name: 'manifest', 102 | minChunks: Infinity 103 | }), 104 | // This instance extracts shared chunks from code splitted chunks and bundles them 105 | // in a separate chunk, similar to the vendor chunk 106 | // see: https://webpack.js.org/plugins/commons-chunk-plugin/#extra-async-commons-chunk 107 | new webpack.optimize.CommonsChunkPlugin({ 108 | name: 'app', 109 | async: 'vendor-async', 110 | children: true, 111 | minChunks: 3 112 | }), 113 | 114 | // copy custom static assets 115 | new CopyWebpackPlugin([ 116 | { 117 | from: path.resolve(__dirname, '../static'), 118 | to: config.build.assetsSubDirectory, 119 | ignore: ['.*'] 120 | } 121 | ]) 122 | ] 123 | }) 124 | 125 | if (config.build.productionGzip) { 126 | const CompressionWebpackPlugin = require('compression-webpack-plugin') 127 | const createCompression = (algorithm) => { 128 | const asset = `[path].${ algorithm === 'gzip' ? 'gz' : 'br' }[query]` 129 | 130 | return new CompressionWebpackPlugin({ 131 | asset, 132 | algorithm, 133 | test: new RegExp( 134 | '\\.(' + 135 | config.build.productionGzipExtensions.join('|') + 136 | ')$' 137 | ), 138 | threshold: 10240, 139 | minRatio: 0.8 140 | }) 141 | } 142 | 143 | webpackConfig.plugins.push(createCompression('gzip')) 144 | webpackConfig.plugins.push(createCompression('brotliCompress')) 145 | } 146 | 147 | if (config.build.bundleAnalyzerReport) { 148 | const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin 149 | webpackConfig.plugins.push(new BundleAnalyzerPlugin()) 150 | } 151 | 152 | module.exports = webpackConfig 153 | -------------------------------------------------------------------------------- /site/config/dev.env.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const merge = require('webpack-merge') 3 | const prodEnv = require('./prod.env') 4 | 5 | module.exports = merge(prodEnv, { 6 | NODE_ENV: '"development"' 7 | }) 8 | -------------------------------------------------------------------------------- /site/config/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | // Template version: 1.3.1 3 | // see http://vuejs-templates.github.io/webpack for documentation. 4 | 5 | const path = require('path') 6 | 7 | module.exports = { 8 | dev: { 9 | 10 | // Paths 11 | assetsSubDirectory: 'static', 12 | assetsPublicPath: '/', 13 | proxyTable: {}, 14 | 15 | // Various Dev Server settings 16 | host: 'localhost', // can be overwritten by process.env.HOST 17 | port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined 18 | autoOpenBrowser: false, 19 | errorOverlay: true, 20 | notifyOnErrors: true, 21 | poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions- 22 | 23 | // Use Eslint Loader? 24 | // If true, your code will be linted during bundling and 25 | // linting errors and warnings will be shown in the console. 26 | useEslint: true, 27 | // If true, eslint errors and warnings will also be shown in the error overlay 28 | // in the browser. 29 | showEslintErrorsInOverlay: false, 30 | 31 | /** 32 | * Source Maps 33 | */ 34 | 35 | // https://webpack.js.org/configuration/devtool/#development 36 | devtool: 'cheap-module-eval-source-map', 37 | 38 | // If you have problems debugging vue-files in devtools, 39 | // set this to false - it *may* help 40 | // https://vue-loader.vuejs.org/en/options.html#cachebusting 41 | cacheBusting: true, 42 | 43 | cssSourceMap: true 44 | }, 45 | 46 | build: { 47 | // Template for index.html 48 | index: path.resolve(__dirname, '../dist/index.html'), 49 | 50 | // Paths 51 | assetsRoot: path.resolve(__dirname, '../dist'), 52 | assetsSubDirectory: 'static', 53 | assetsPublicPath: '/', 54 | 55 | /** 56 | * Source Maps 57 | */ 58 | 59 | productionSourceMap: false, 60 | // https://webpack.js.org/configuration/devtool/#production 61 | devtool: '#source-map', 62 | 63 | // Gzip off by default as many popular static hosts such as 64 | // Surge or Netlify already gzip all static assets for you. 65 | // Before setting to `true`, make sure to: 66 | // npm install --save-dev compression-webpack-plugin 67 | productionGzip: true, 68 | productionGzipExtensions: ['html', 'js', 'css'], 69 | 70 | // Run the build command with an extra argument to 71 | // View the bundle analyzer report after build finishes: 72 | // `npm run build --report` 73 | // Set to `true` or `false` to always turn it on or off 74 | bundleAnalyzerReport: process.env.npm_config_report 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /site/config/prod.env.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | module.exports = { 3 | NODE_ENV: '"production"' 4 | } 5 | -------------------------------------------------------------------------------- /site/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 前端技术文章 - front-end-rss | by ChanceYu 13 | 14 | 15 |
16 | 17 | 18 | 27 | 28 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /site/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "site", 3 | "version": "1.0.0", 4 | "description": "A Vue.js project", 5 | "author": "ChanceYu ", 6 | "private": true, 7 | "scripts": { 8 | "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", 9 | "start": "npm run dev", 10 | "lint": "eslint --ext .js,.vue src", 11 | "build": "node build/build.js" 12 | }, 13 | "dependencies": { 14 | "@vant/touch-emulator": "^1.1.0", 15 | "dayjs": "^1.8.16", 16 | "vant": "^2.2.9", 17 | "vue": "^2.5.2", 18 | "vue-infinite-scroll": "^2.0.2", 19 | "vue-router": "^3.0.1" 20 | }, 21 | "devDependencies": { 22 | "autoprefixer": "^7.1.2", 23 | "babel-core": "^6.22.1", 24 | "babel-eslint": "^8.2.1", 25 | "babel-helper-vue-jsx-merge-props": "^2.0.3", 26 | "babel-loader": "^7.1.1", 27 | "babel-plugin-import": "^1.12.2", 28 | "babel-plugin-syntax-jsx": "^6.18.0", 29 | "babel-plugin-transform-runtime": "^6.22.0", 30 | "babel-plugin-transform-vue-jsx": "^3.5.0", 31 | "babel-preset-env": "^1.3.2", 32 | "babel-preset-stage-2": "^6.22.0", 33 | "chalk": "^2.0.1", 34 | "compression-webpack-plugin": "^1.1.12", 35 | "copy-webpack-plugin": "^4.0.1", 36 | "css-loader": "^0.28.0", 37 | "eslint": "^4.15.0", 38 | "eslint-config-standard": "^10.2.1", 39 | "eslint-friendly-formatter": "^3.0.0", 40 | "eslint-loader": "^1.7.1", 41 | "eslint-plugin-import": "^2.7.0", 42 | "eslint-plugin-node": "^5.2.0", 43 | "eslint-plugin-promise": "^3.4.0", 44 | "eslint-plugin-standard": "^3.0.1", 45 | "eslint-plugin-vue": "^4.0.0", 46 | "extract-text-webpack-plugin": "^3.0.0", 47 | "file-loader": "^1.1.4", 48 | "friendly-errors-webpack-plugin": "^1.6.1", 49 | "fs-extra": "^9.0.1", 50 | "html-webpack-plugin": "^3.2.0", 51 | "node-notifier": "^5.1.2", 52 | "optimize-css-assets-webpack-plugin": "^3.2.0", 53 | "ora": "^1.2.0", 54 | "portfinder": "^1.0.13", 55 | "postcss-import": "^11.0.0", 56 | "postcss-loader": "^2.0.8", 57 | "postcss-pxtorem": "^4.0.1", 58 | "postcss-url": "^7.2.1", 59 | "rimraf": "^2.6.0", 60 | "semver": "^5.3.0", 61 | "shelljs": "^0.7.6", 62 | "uglifyjs-webpack-plugin": "^1.1.1", 63 | "url-loader": "^0.5.8", 64 | "vue-loader": "^13.3.0", 65 | "vue-style-loader": "^3.0.1", 66 | "vue-template-compiler": "^2.5.2", 67 | "webpack": "^3.6.0", 68 | "webpack-bundle-analyzer": "^2.9.0", 69 | "webpack-dev-server": "^2.9.1", 70 | "webpack-merge": "^4.1.0" 71 | }, 72 | "engines": { 73 | "node": ">= 12.0.0", 74 | "npm": ">= 6.0.0" 75 | }, 76 | "browserslist": [ 77 | "> 1%", 78 | "last 2 versions", 79 | "not ie <= 8" 80 | ] 81 | } 82 | -------------------------------------------------------------------------------- /site/src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | 13 | 25 | -------------------------------------------------------------------------------- /site/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hzhuhao/web-front-end-rss/02be80e2bda94d5826acd38cb68a712e921b0dc3/site/src/assets/logo.png -------------------------------------------------------------------------------- /site/src/components/Index.vue: -------------------------------------------------------------------------------- 1 | 100 | 101 | 324 | 325 | 673 | -------------------------------------------------------------------------------- /site/src/main.js: -------------------------------------------------------------------------------- 1 | // The Vue build version to load with the `import` command 2 | // (runtime-only or standalone) has been set in webpack.base.conf with an alias. 3 | import Vue from 'vue' 4 | import '@vant/touch-emulator' 5 | import { Search, Icon, Popup, Cell, CellGroup, Tag, Divider, Skeleton, Loading } from 'vant' 6 | import infiniteScroll from 'vue-infinite-scroll' 7 | import App from './App' 8 | import router from './router' 9 | 10 | Vue.config.productionTip = false 11 | 12 | Vue.use(infiniteScroll).use(Search).use(Icon).use(Popup).use(Cell).use(CellGroup).use(Tag).use(Divider).use(Skeleton).use(Loading) 13 | 14 | /* eslint-disable no-new */ 15 | new Vue({ 16 | el: '#app', 17 | router, 18 | components: { App }, 19 | template: '' 20 | }) 21 | -------------------------------------------------------------------------------- /site/src/router/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Router from 'vue-router' 3 | import Index from '@/components/Index' 4 | 5 | Vue.use(Router) 6 | 7 | export default new Router({ 8 | mode: 'history', 9 | routes: [ 10 | { 11 | path: '/', 12 | name: 'Index', 13 | component: Index 14 | } 15 | ] 16 | }) 17 | -------------------------------------------------------------------------------- /site/static/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hzhuhao/web-front-end-rss/02be80e2bda94d5826acd38cb68a712e921b0dc3/site/static/.gitkeep -------------------------------------------------------------------------------- /templates/DETAILS.md: -------------------------------------------------------------------------------- 1 | :alarm_clock: 更新时间: <%= obj.currentDate %>。[文章来源](/README.md)、[文章分类](/TAGS.md) 2 | 3 | ## <%= obj.title %> 4 | 5 | <% if(obj.keywords){ %> 6 | > 关键字:`<%= obj.keywords.replace(/(\?)|([:])/g, '').split('|').join('`、`') %>` 7 | <% } %> 8 | 9 | <% _.each(obj.items, function(item){ var itemTitle = obj.formatTitle(item.title); %> 10 | - [<%= item.date %>-<%= itemTitle %>](<%= item.link %>) <% }) %> 11 | -------------------------------------------------------------------------------- /templates/README.md: -------------------------------------------------------------------------------- 1 |

Front-End RSS

点击右上角 Watch 订阅 最新前端技术文章

2 | https://rssweb.vercel.app 3 |
4 | 5 | ## 6 | 7 | - 项目目的:每天定时抓取最新前端技术文章,并推送到 GitHub 方便查看 8 | - 文章来源:RSS 订阅源 9 | - 抓取时间:每天的 06:00、08:00、12:00、18:00、22:00 10 | 11 | ## 12 | 13 | :alarm_clock: 更新时间: <%= obj.currentDate %>,:rocket: 更新条数: +<%= obj.newData.length %>, ![](/assets/dot.png) 表示有更新,[文章分类](/TAGS.md) 14 | 15 | ## 文章来源 16 | <% _.each(obj.linksJson, function(e){ var rssTitle = obj.formatTitle(e.title); %> 17 | - [<%= rssTitle %>](#<%= rssTitle.toLowerCase() %>)<% if (e.title in obj.newData.rss){ %>![](/assets/dot.png) <% } %> <% }) %> 18 | 19 | ## 文章链接 20 | <% _.each(obj.linksJson, function(e){ var rssTitle = obj.formatTitle(e.title); %> 21 |
22 | 23 | <%= rssTitle %> 24 | 25 | 26 | <% _.each(e.items.slice(0,20), function(item, index){ var itemTitle = obj.formatTitle(item.title); %> 27 | - [<%= item.date %>-<%= itemTitle %>](<%= item.link %>) <% if (e.title in obj.newData.rss && item.link in obj.newData.links){ %>![](/assets/new.png) <% } %> <% }) %> 28 | - [......【查看更多】......](/details/<%= e.title %>.md) 29 | 30 |
⬆  返回顶部
31 |
32 | <% }) %> 33 | 34 | ## 其它 35 | 感谢 [RSSHub](https://github.com/DIYgod/RSSHub) 提供的微信公众号 RSS 链接 36 | -------------------------------------------------------------------------------- /templates/TAGS.md: -------------------------------------------------------------------------------- 1 | > 提示:只是根据文章标题简单匹配分类 2 | 3 | :alarm_clock: 更新时间: <%= obj.currentDate %>。[文章来源](/README.md) 4 | 5 | ## 文章分类 6 | <% _.each(obj.tags, function(e){ %> 7 | - [<%= e.tag %>](#<%= e.tag.toLowerCase() %>) <% }) %> 8 | 9 | ## 文章链接 10 | <% _.each(obj.tags, function(e){ %> 11 |
12 | 13 | <%= e.tag %> 14 | 15 |

16 | 17 | <% if(e.keywords){ %> 18 | > 关键字:`<%= e.keywords.replace(/(\?)|([:])/g, '').split('|').join('`、`') %>` 19 | <% } %> 20 | 21 | <% _.each(e.items.slice(0,20), function(item){ var itemTitle = obj.formatTitle(item.title); %> 22 | - [【<%= item.rssTitle %>】<%= itemTitle %>](<%= item.link %>)<% }) %> 23 | - [......【查看更多】......](/details/tags/<%= e.filename %>.md) 24 | 25 |
⬆  返回顶部
26 |
27 | <% }) %> 28 | -------------------------------------------------------------------------------- /vercel.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 2, 3 | "builds": [ 4 | { 5 | "src": "site/api/*.js", 6 | "use": "@vercel/node" 7 | }, 8 | { 9 | "src": "site/package.json", 10 | "use": "@vercel/static-build" 11 | } 12 | ], 13 | "routes": [ 14 | { 15 | "src": "/u/(?[^/]*)", 16 | "dest": "site/api/index.js?id=$id" 17 | }, 18 | { 19 | "src": "/(.*)", 20 | "dest": "site/$1" 21 | } 22 | ] 23 | } --------------------------------------------------------------------------------