(PS:因为我是先在京东CF研发知识管理平台上写了之后copy过来的,所以有些排版样式问题,还请见谅)
第一章 技术与规范
1.Node
Node.js 就是运行在服务端的 JavaScript。Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎。相当与JDK。
Github:
https://github.com/nodejs/node
官网教程:
其他教程:
http://nqdeng.github.io/7-days-nodejs/
http://www.imooc.com/learn/348
2.Npm
NPM(node package manager)是 Node.js 的包管理和分发工具。它类似于PHP的Composer,Ruby的gem,Python的pip,Java的Maven……它可以让 JavaScript 开发者能够更加轻松的共享代码和共用代码片段,并且通过npm管理你分享的代码也很方便快捷和简单。截至目前 最新的稳定版 npm 是 3.3.12。
Github:
官方网站:
官方教程:
https://docs.npmjs.com/getting-started
其他教程:
https://segmentfault.com/a/1190000005799797
http://www.cnblogs.com/kelsen/p/4947859.html
http://www.runoob.com/nodejs/nodejs-npm.html
3.Gulp
gulp是基于Nodejs的自动任务运行器, 能自动化地完成 javascript、coffee、sass、less、html/image、css 等文件的测试、检查、合并、压缩、格式化、浏览器自动刷新、部署文件生成,并监听文件在改动后重复指定的这些步骤。在实现上,它借鉴了Unix操作系统的管道(pipe)思想,前一级的输出,直接变成后一级的输入,使得在操作上非常简单。
Github:
https://github.com/gulpjs/gulp
官方网站:
官方文档:
https://github.com/gulpjs/gulp/blob/master/docs/API.md
其他教程:
http://www.cnblogs.com/2050/p/4198792.html
http://www.tuicool.com/articles/FJVNZf
https://www.cnblogs.com/Darren_code/p/gulp.html
4.Bower
Bower是一个客户端技术的软件包管理器,它可用于搜索、安装和卸载如JavaScript、HTML、CSS之类的网络资源。其他一些建立在Bower基础之上的开发工具,如YeoMan和Grunt。
Bower与Npm:
简单的说,npm是进行后端开发中,使用的模块安装工具,而bower,是前端的模块安装工具。比如,在安装express,socket.io时,当然使用的是npm,那么比如bootstrap,jquery等前端框架,需要使用bower,npm 是伴随 Node.js 出现的一个包管理器,最开始只能支持 Node.js 的模块管理,但是后来, npm 官网经过一次改版,打出的口号是,javascript 的包管理器,所以,其已经不在局限于是Node.js 的模块管理了,已经通用到了所有 js 的包管理工具了,可以说,前后通吃了。bower 的话,从一开始,就是专门为前端表现设计的包管理器,一切全部为前端考虑的。npm 和 bower 的最大区别,就是 npm 支持嵌套地依赖管理,而 bower只能支持扁平的依赖(嵌套的依赖,由程序员自己解决)。嵌套依赖,指的就是,你依赖的软件包,还有它自己的依赖,好像摘葡萄,一摘一大串。在服务器环境的时候,这并没什么关系,因为存储空间够大,一切代码都是本地运行,只要解决完依赖就行了,但是到了用户产品的浏览器里,就很成问题了,你不能让用户去下载好几M的js代码,那就太糟糕了。在这个情况下,就需要程序员自己手动解决用到的类库的嵌套依赖问题。比如确保各种各样的插件都依赖同一个版本的jQuery。为什么有很多项目 bower 和 npm 都用呢,那是因为要用 bower 管理前端的包,而用 npm 去管理一些后端的包和构建工具,例如,yeoman,grunt,gulp,jshint 等等等等。所有的包管理器,都有自己的弊端,要视需要选用对自己的项目最合适的。
Github:
https://github.com/bower/bower
官方网站:
官方教程:
https://bower.io/#getting-started
其他教程:
https://segmentfault.com/a/1190000002971135
5.Browserify
browserify是一个编译工具,通过它可以在浏览器环境下像nodejs一样使用遵循commonjs规范的模块化编程。你可以使用browserify来组织代码,也可以使用第三方模块,不需要会nodejs,只需要用到node来编译,用到npm来安装包.browserify模块化的用法和node是一样的,所以npm上那些原本仅仅用于node环境的包,在浏览器环境里也一样能用。
Github:
https://github.com/browserify/browserify
官方网站:
官方教程:
https://github.com/substack/node-browserify#usage
学习资料
http://www.tuicool.com/articles/IFvQ3qv
https://segmentfault.com/a/1190000002941361
http://www.cnblogs.com/liulangmao/p/4920534.html
6.Browsersync
Browsersync能让浏览器实时、快速响应您的文件更改(html、js、css、sass、less等)并自动刷新页面。更重要的是 Browsersync可以同时在PC、平板、手机等设备下进项调试。您可以想象一下:“假设您的桌子上有pc、ipad、iphone、android等设备,同时打开了您需要调试的页面,当您使用browsersync后,您的任何一次代码保存,以上的设备都会同时显示您的改动”。无论您是前端还是后端工程师,使用它将提高您30%的工作效率。
Github:
https://github.com/BrowserSync/browser-sync
教程:
7.Less-.less,Saas-.scss
Sass,Less 是一门 CSS 预处理语言,它扩展了 CSS 语言,增加了变量、Mixin、函数等特性,使 CSS 更易维护和扩展。Less 可以运行在 Node 或浏览器端。
8.Es6
ECMAScript 6 (以下简称ES6)是JavaScript语言的下一代标准。因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015.也就是说,ES6就是ES2015。
教程:
https://segmentfault.com/a/1190000004365693#articleHeader6
9.Babel
Babel是一个广泛使用的转码器,可以将ES6代码转为ES5代码,从而在现有环境执行。
Github:
https://github.com/babel/babel
官方网站:
教程:
10.Q.js
Promise是抽象异步处理对象以及对其进行各种操作的组件。JavaScript的异步执行都是以回调函数来执行的。Promise可以简化回调并提供链式异步调用。
Github:
https://github.com/kriskowal/q
教程:
http://liubin.org/promises-book/
Github:
https://github.com/kriskowal/q
11.Express.js
基于 Node.js 平台,快速、开放、极简的 web 开发框架。
Github:
https://github.com/expressjs/express
官方网站:
中文网:
12.Jquery Datatables
Datatables是一款基于jQuery表格插件。
Github:
https://github.com/DataTables/DataTables
官方网站:
13.Moment.js
JavaScript 日期处理类库。
Github:
https://github.com/moment/moment
14.Bootstrap-datepicker
日期时间选择器。
Github:
https://github.com/uxsolutions/bootstrap-datepicker
官方文档地址:
http://bootstrap-datepicker.readthedocs.io/en/latest/index.html
中文网文档:
http://www.bootcss.com/p/bootstrap-datetimepicker/index.htm
15.City-Picker.js
Github:
https://github.com/tshi0912/city-picker
城市三级联动选择器。
16.Echart
图标类控件。
Github:
https://github.com/ecomfe/echarts
官方地址:
http://echarts.baidu.com/index.html
17.MockJS
方便前端生成模拟数据,它基于 数据模板 生成模拟数据,基于 HTML模板 生成模拟数据,拦截并模拟 ajax 请求。
Github:
https://github.com/nuysoft/Mock
官方地址:
18.Fontawesome
Font Awesome 字体为您提供可缩放矢量图标,它可以被定制大小、颜色、阴影以及任何可以用CSS的样式。
Github:
https://github.com/FortAwesome/Font-Awesome
官方地址:
http://www.fontawesome.com.cn/
19.Handlebarsjs
Handlebars.js是一套js模版引擎,是一款基于Jquery的插件,以json对象为数据源,支持逻辑判断、循环等操作,同时具有非常好的扩展性,体积60KB左右
Github:
https://github.com/wycats/handlebars.js/
教程:
http://www.cnblogs.com/iyangyuan/archive/2013/12/12/3471227.html
http://www.ghostchina.com/introducing-the-handlebars-js-templating-engine/
20.Bootstrap Search Suggest
21.Daterangepicker
22.pnotify
一个仿桌面弹窗的提示插件
Github:
https://github.com/sciactive/pnotify
第二章 gulp自动化构建组件(FEZ项目实践)
1.node-hbsfy和node-pugify
borwserify 支持 require handlebars模板及jade模板
Github:
https://github.com/epeli/node-hbsfy
https://github.com/domenic/jadeify
2.node-glob
使用glob来返回目录中所有子文件(文件或文件夹)
Github:
https://github.com/isaacs/node-glob
教程:
http://www.cnblogs.com/liulangmao/p/4552339.html
glob通配符释义:
http://blog.****.net/zhuchuji/article/details/51297819
3.gulp-inject
CSS和WebComponent 注入插件,将它们注入到index.html文件中(官方解释),把css,js这些静态文件注入到html文件中,不需要手动添加。
Github:
https://github.com/klei/gulp-inject
4.main-bower-files
通过读取并分析bower.json文件里override属性里main路径下定义的插件及相关依赖,返回一个文件数组
Github:
https://github.com/ck86/main-bower-files
5.vinyl-buffer
将虚拟的流文件转换为可以使用的的buffer文件
Github:
https://github.com/hughsk/vinyl-buffer
6.gulp-if
为功能执行添加条件判断,跟程序语言中的if是相同语义
Github:
https://github.com/robrich/gulp-if
7.browserify-shim
browserify-shim 是一个转换工具,它会读取 package.json 文件的 “browserify-shim” 属性,将不遵循node风格的commonjs的输出写法的模块包转换成browserify可以读懂的模块包
Github:
https://github.com/thlorenz/browserify-shim
8.babel-polyfill
IE8兼容包
Github:
https://github.com/babel/babel/tree/master/packages/babel-polyfill
9.vueify
在browserify中编辑vue代码
Github:
https://github.com/babel/babel/tree/master/packages/babel-polyfill
10.watchify
Github:
https://github.com/browserify/watchify
11.gulp.spritesmith
小图(图标)合成精灵图,拼接图片并生成样式表,并且还能输出SASS,Stylus,LESS甚至是JSON
Github:
https://github.com/twolfson/gulp.spritesmith
12.gulp-filter
在虚拟文件流中过滤特定的文件
Github:
https://github.com/sindresorhus/gulp-filter
13.gulp-order
The gulp plugin gulp-order allows you to reorder a stream of files using the same syntax as of gulp.src,这是官方定义,简单来说,就是按给定的顺序整理需要处理的文件集。
Github:
https://github.com/sirlantis/gulp-order
14.gulp-concat 与 gulp-concat-css
合并js与css文件,比如合并多个js或css到一个文件
Github:
https://github.com/contra/gulp-concat
https://github.com/mariocasciaro/gulp-concat-css
15.rework
Github:
https://github.com/reworkcss/rework
16.del
使用glob匹配规则来删除文件或文件夹
Github:
https://github.com/sindresorhus/del
17.gulp-less和gulp-sass
编译less和sass文件的gulp插件
Github:
https://github.com/stevelacy/gulp-less
https://github.com/dlmanning/gulp-sass
18.gulp-postcss
PostCSS把扩展的语法和特性(比如变量,混入,未来css预发,内联图像等)转换成现代的浏览器友好的CSS
Github:
https://github.com/postcss/gulp-postcss
19.gulp-usemin(不推荐使用)
根据预先在html文件(或者其它模板/视图中的文件)中声明好的blocks来执行一系列任务(例如合并文件并重全名、排除一些只在开发过程中引入的脚本以及将css和js中的代码提取出来内嵌在html文件中)来处理未优化的样式和脚本
Github:
https://github.com/pursual/gulp-usemin
20.gulp-htmlmin
压缩html,可以压缩页面javascript、css,去除页面空格、注释,删除多余属性等操作
Github:
https://github.com/jonschlinkert/gulp-htmlmin
21.gulp-imagemin
压缩常见的图片格式,比如PNG,JPEG,GIF,甚至是SVG图片
Github:
https://github.com/sindresorhus/gulp-imagemin
22.gulp-clean-css
压缩css文件,减小文件大小,并给引用url添加版本号避免缓存
Github:
https://github.com/scniro/gulp-clean-css
23.gulp-uglify
专业压缩js文件,减小文件大小
Github:
https://github.com/terinjokes/gulp-uglify
24.gulp-rename
修改文件名称,比如有时我们需要把app.js改成app.min.js
Github:
https://github.com/hparra/gulp-rename
25.gulp-util
gulp工具包,可以打log啊,提示语颜色啊,提示音啊等等一些操作,不过一般就是用来打印日志。。。
Github:
https://github.com/gulpjs/gulp-util
26.gulp-rev
根据静态资源内容,生成md5签名,打包出来的文件名会加上md5签名,同时生成一个json用来保存文件名路径对应关系
Github:
https://github.com/sindresorhus/gulp-rev
27.gulp-rev-replace
配合 gulp-rev 使用,拿到生成的 manifest。json 后替换对应的文件名称
Github:
https://github.com/jamesknelson/gulp-rev-replace
28.gulp-sourcemaps
处理 JavaScript 时生成 SourceMap
Github:
https://github.com/gulp-sourcemaps/gulp-sourcemaps
29.gulp-svg-symbols
合并SVG图标
Github:
https://github.com/Hiswe/gulp-svg-symbols
30.gulp-inject-string
在页面中插入内容
Github:
https://github.com/mikehazell/gulp-inject-string
31.gulp-replace
字符串替换的gulp 插件
Github:
https://github.com/lazd/gulp-replace
32.gulp-flatten
删除或替换文件的相对路径
Github:
https://github.com/armed/gulp-flatten
33.lazypipe
Lazypipe允许您创建一个不可变的、延迟初始化的管道。能在需要重用部分管道的环境中使用,比如gulp。它可以创建一些工厂来把你经常使用的功能 stream 链分离出来,变成一个通用插件功能链,然后放入需要这个链的链路上
Github:
https://github.com/OverZealous/lazypipe
34.event-stream
流操作,还不大清楚其原理
Github:
https://github.com/dominictarr/event-stream
35.gulp-autoprefixer
给CSS添加前缀,解决某些CSS属性不是标准属性,有各种浏览器前缀的情况,灰常有用
Github:
https://github.com/sindresorhus/gulp-autoprefixer
36.gulp-posthtml
html预处理 html中的rem转换等
Github:
https://github.com/posthtml/gulp-posthtml
37.postcss-pxtorem
CSS 转换 px
为 rem
Github:
https://github.com/cuth/postcss-pxtorem
38.envify
Github:
https://github.com/hughsk/envify
39.vinyl-source-stream
在gulp或虚拟文件的流开始使用传统的文本流,对现有的npm流有更好的互操作性
Github:
https://github.com/hughsk/vinyl-source-stream
40.babelify
Github:
https://github.com/babel/babelify
41.cssify和lessify
borwserify 支持 require css样式及less样式
Github:
https://github.com/davidguttman/cssify
https://github.com/dstokes/lessify
42.preprocessify
条件注释/主要区分开发和上线环境,是否加载mock数据
Github:
https://github.com/bibliolabs/preprocessify
43.lodash
具有一致接口、模块化、高性能等特性的 JavaScript 扩展工具库
Github:
https://github.com/lodash/lodash
官方网站:
44.gulp-size
压缩字体文件
Github:
https://github.com/sindresorhus/gulp-size
45.gulp-size
压缩字体文件
Github:
https://github.com/sindresorhus/gulp-size
46.imagemin-pngquant
压缩png图片文件
Github:
https://github.com/sindresorhus/gulp-size
47.gulp-rev-delete-original
删除由gulp-rev或gulp-rev-all重写的原始文件
Github:
https://github.com/nib-health-funds/gulp-rev-delete-original
48.gulp-rev-css-url
提取样式中的相对路径
Github:
https://github.com/galkinrost/gulp-rev-css-url
49.gulp-rev-css-url
提取样式中的相对路径
Github:
https://github.com/galkinrost/gulp-rev-css-url
50.gulp-strip-debug
去掉console代码
Github:
https://github.com/sindresorhus/gulp-strip-debug
51.gulp-cdnify
CDN地址替换
Github:
https://github.com/kaiqigong/gulp-cdnify
第三章 React
1.React
react官方文档:
https://reactjs.org/docs/hello-world.html
react基础入门:
http://www.ruanyifeng.com/blog/2015/03/react.html
2.react route
基础入门:
http://www.ruanyifeng.com/blog/2016/05/react_router.html
3.fetch-jsonp
4.isomorphic-fetch
5.react-router-dom
6.PubSubJS
Github:
https://github.com/mroderick/PubSubJS
7.react-dnd
8.react-draggable
9.react-redux
10.nerv
一个基于 Virtual DOM 的类 React 组件框架(jd自己的凹凸实验室研发的)
官方地址:
第四章 Vue:
1.2018 年你需要知道的 Vue.js 组件库,完善你的应用开发
http://blog.****.net/VhWfR2u02Q/article/details/78859493
2.基于vue的browserify的项目模板:
https://github.com/keepfool/vue-tutorials/tree/master/05.OfficialTemplates/my-browserify-simple-demo
第五章 Webpack:
1.基础入门
http://www.jianshu.com/p/42e11515c10f
第六章 CSS:
1.箭头消息提示框样式
http://www.cssarrowplease.com/
2.Flex 布局教程:语法篇
http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html?utm_source=tuicool
3.Flex 布局教程:实例篇
http://www.ruanyifeng.com/blog/2015/07/flex-examples.html
第七章 UI:
1. Ant Design of React
alibaba的蚂蚁金服开发的开箱即用的高质量 React UI组件
官方教程:
https://ant.design/docs/react/introduce-cn
2.element
Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库
官方教程:
http://element-cn.eleme.io/#/zh-CN/component/installation
第八章 分散技术:
1. __filename
在Node.js中,预定义了两个变量:用于获取当前模块文件名的__filename变量与用于获取当前目录名的__dirname变量。在任何模块文件内部,可以使用__filename变量获取当前模块文件的带有完整绝对路径的文件名。
2.fis
3.PostCSS
4.Prettier1.0
JS程序员格式化代码神器!
5.Swagger
是一个简单但功能强大的API表达工具,使用Swagger生成API,我们可以得到交互式文档,自动生成代码的SDK以及API的发现特性等
6.vs code
一款免费,小巧,好看的编辑器,微软出品
官方教程:
https://code.visualstudio.com/docs
7.yarn
8.async-validator
第九章 技术文章链接:
1.下一代 Web 应用模型 — Progressive Web App
https://zhuanlan.zhihu.com/p/25167289?from=timeline&isappinstalled=0
2.最全的常用正则表达式大全
https://www.cnblogs.com/zxin/archive/2013/01/26/2877765.html
3.Git使用入门
https://mp.weixin.qq.com/s/xoyQ4TzVKLQb2VjZJLUqFQ
4.antV 3.0(G2,F2,G6)发布
https://antv.alipay.com/zh-cn/vis/blog/antv-3.0-releasing.html
5.CSS工程化演进
https://mp.weixin.qq.com/s/1QkGy9UbRF3FtyBllmJdmA
6.【第1162期】2018 要学习的优秀 JavaScript 库与知识
http://mp.weixin.qq.com/s/qyyDZkfjy57njuncq3_i1w
7.【第1154期】2017 年 JavaScript 发展状况回顾
http://mp.weixin.qq.com/s/5phdFz4W3Q2cUYiyWgwK9A
8.【第1152期】2017 JavaScript 调查报告概述
http://mp.weixin.qq.com/s/SqmFD0VKiP40q8iJzkE4kA
9.【第1165期】H5动画:轨迹移动
https://mp.weixin.qq.com/s/ySC69C3lIIzRDwmOs-pGYw
10.【第1164期】从前端技术到体验科技
http://mp.weixin.qq.com/s/cIM4KA-4EaT3wdxLuIpBBg
11.【第1117期】萌新也能懂的现代 JavaScript 开发
https://zhuanlan.zhihu.com/p/31044340
12.谷歌大脑2017总结(Jeff Dean执笔,干货满满,值得收藏)
http://mp.weixin.qq.com/s/a0HFS95ZXiZXNh5qXbmUBA
13.谷歌大脑2017总结 第二弹(Jeff Dean执笔,干货满满,值得收藏)
https://mp.weixin.qq.com/s/RazWCsBY_dF1VR0JTYIjsw
14.【第1167期】npm 2017 JavaScript 框架报告之 React 生态系统分析
https://mp.weixin.qq.com/s/Ltw1-SsW4IOHr0HcXtUqDQ
15.【第1168期】字符编码的故事
http://mp.weixin.qq.com/s/P0PbNjajkILusn533mNqVA
16.【第1169期】如何有效地做算法题
http://mp.weixin.qq.com/s/Zf__tGoVB_iONKL0lTg1Ew
17.【第1171期】npm 2017 JavaScript 框架报告之后端框架
http://mp.weixin.qq.com/s/w5vccN2CnVO82PSOp75-KA
18.解决ajax跨域的方法原理详解
http://blog.****.net/wuliyun88/article/details/50521725
19.Chrome控制台使用详解
http://www.codeceo.com/article/chrome-console.html
20.【第1172期】HTML 5.2 有哪些新内容?
https://github.com/xitu/gold-miner/blob/master/TODO/whats-new-in-html-5-2.md
21.【第1173期】npm 2017 JavaScript 框架报告之前端框架
https://mp.weixin.qq.com/s/AD_7nOCBBZxmfTKlF0fN2g
22.【第790期】构建可靠的前端异常监控服务-采集篇
http://mp.weixin.qq.com/s/LGbMXauSuuGWcvqazjXWjQ
23.【第1175期】2017年 JavaScript 明星项目
https://risingstars.js.org/2017/zh/#section-framework
24.【第1037期】美团点评点餐前后端分离实践
https://zhuanlan.zhihu.com/p/28704974
25.【第733期】Yarn:一个新的JavaScript包管理器
http://mp.weixin.qq.com/s/FnCa0wqdHKQN4syrPIPSAA
26.【第1178期】WebSocket:5分钟从入门到精通
http://mp.weixin.qq.com/s/rKvoevbSmtAUoCgOH2lZdQ
第十章 其他文章链接:
1.【第1170期】如何看待员工跳槽
https://mp.weixin.qq.com/s/r8f_p0nSbV2ZAXI7xLeCOg
2.超火的漫画线稿上色AI——style2paints 2.0出新版了
http://blog.****.net/yH0VLDe8VG8ep9VGe/article/details/78933351
3.掘金翻译计划,包含各种英文版精彩的技术文章的中文译文(热门)
https://github.com/xitu/gold-miner
4.首个围棋10段诞生!是10连胜柯洁的国产阿法狗(腾讯绝艺)