1. 前端开发

html,css,javascript

node + express+React+redux+Babel

1.1. 自适应 Web 设计

1.2. LESS

LESSCSS是一种动态样式语言,属于CSS预处理语言的一种,它使用类似CSS的语法,为CSS的赋予了动态语言的特性,如变量、继承、运算、函数等,更方便CSS的编写和维护。

http://www.1024i.com/demo/less/

1.3. LESS VS SASS

使用 .scss 方式的 SASS,语法比较习惯

1.4. Grunt VS Gulp

选择Gulp,因为语法像写代码

1.5. 优化原则

  • 按需加载
  • 将脚本放在底部
  • 将样式表放在头部

1.6. 静态资源

静态资源在上线后需要添加hash戳作为版本标识

1.7. 后端的包管理器

npm

1.8. 前端的包管理器

1.8.1. npm + browserify

优点

browserify 基于 pipe 的方式更加干净而且灵活性也更高,尤其适合和 gulp 一起使用,[而 gulp 的官方 recipes 也是只有 browserify 的] https://github.com/gulpjs/gulp/tree/master/docs/recipes

缺点

npm不太适用于web,代码依赖层级太复杂,很多库几行代码的函数都要依赖别人的,很多冗余代码,而且编译很慢

1.8.2. gulp

1.9. 模块管理

1.9.1. 对比

  • seajs / require : 是一种在线"编译" 模块的方案,相当于在页面上加载一个 CMD/AMD 解释器。这样浏览器就认识了 define、exports、module 这些东西。也就实现了模块化。
  • browserify / webpack : 是一个预编译模块的方案,相比于上面 ,这个方案更加智能。没用过browserify,这里以webpack为例。首先,它是预编译的,不需要在浏览器中加载解释器。另外,你在本地直接写JS,不管是 AMD / CMD / ES6 风格的模块化,它都能认识,并且编译成浏览器认识的JS。

1.9.2. webpack

预编译模块方案 Webpack 允许你使用不同的模块管理器,不只是 CommonJS,甚至支持 ES6 模块。

Webpack 通过 babel-loader 也可以支持 ES2015。除此之外,webpack 的 loader 生态远比 System.js 繁荣,热替换,完善的 source map,优化插件,以及更小的 runtime library size(webpack 的额外代码量几乎可以忽略,而 System.js 压缩后居然还要 45kb,你是在逗我?)开发中的 Webpack 2 也将支持用 System.import 替代 AMD 语法作为模块异步加载点. 相比之下 SystemJS 的唯一特点就是不需要构建,然而即使如此,开发体验也远不如 webpack-dev-server。同时,除非你所有用户的浏览器都支持 HTTP/2,不然你最终还是要打包... 理想中的美好世界还是个没谱的事儿,所以综合来说现阶段 Webpack 完爆 SystemJS...

react 的项目用 webpack 还不错,目前非react 项目 还是以gulp+webpack 来搞,webpack仅被用来是代替 browerify 来做JS的模块化

比如,你的工程模块依赖很简单,不需要把js或各种资源打包,只需要简单的合并、压缩,在页面中引用就好了。那就不需要Browserify、Webpack。Gulp就够用了。

反过来,如果你的工程庞大,页面中使用了很多库(SPA很容易出现这种情况),那就可以选择某种模块化方案。至于是用Browserify还是Webpack就需要根据其他因素来判断了。比如团队已经在使用了某种方案,大家都比较熟悉了。再比如,你喜欢Unix小工具协作的方式,那就Browserify。

  1. “还有就是如果我的项目不是SPA,而是很多Pages,然后我不希望所有文件最终都打包成一个bundle.js”

    那就分page打包啊,至于是不是也适合用Webpack或Browserify,我只能说都可以。不过推荐使用webpack

1.9.3. systemjs

动态的模块加载器,可以导入任何流行格式的模块(CommonJS、UMD、AMD、ES6)

Webpack + SystemJS

1.9.4. JSPM

基于SystemJS的Javascript包 package管理器,基于动态的ES6模块加载器之上构建。

1.9.5. Redux

展示数据

1.10. mp3

1.11. Service Workers

Web 支持离线功能,目前支持的浏览器不多,而且支持的浏览器也是在试验阶段

results matching ""

    No results matching ""