Node.js 前端开发的技术选型?

suntopo · 2016年06月14日 · 最后由 hxh1246996371 回复于 2016年06月16日 · 8883 次阅读

之前开发前端时,手动管理 js 包,用 seajs 模块化,然后 npm 工具打包

现在针对包管理就有 bower 和 npm,模块化就有 seajs 和 requirejs,打包常用的也有 gulp 和 grunt

通常现在倾向于 npm 管理,requirejs 模块,gulp 打包?

好久没关注前端,好像又有 webpack...,大家是怎么处理的?

前端选型几大原则

  1. 找自己和团队熟悉的来,所有工具都有坑,本质无太大区别。
  2. 没一个熟悉的话,先看 github 上活跃程度,然后谷歌其名称加教程关键字来判断学习难度
  3. 最后如果发现好像自己对现在的 js 一无所知的话,用 jquery 肯定没错!

#2 楼 @pathbox 对于数据绑定特别少的,觉得 jquery 是第一选择

如果是我自己有决定权 (只要是可控的小团队内),我会选requirejs(仅仅为了模块化编程),bower都不用,更不要用yeoman等,也不用gruntgulpbrowserify, webpack, npm, 不搞自动化部署,不搞一切对于当前业务没有帮助的技术。

我只想从第一行命令开始,所有的一切都在自己的掌控当中:

$ mkdir myApp && cd $_
$ mkdir src
$ cat > src/index.html
<!doctype html>
<html>
...
</html>
$ mkdir src/assets
$ cd src/assets
$ mkdir ./{stylesheets, javascripts}
$ curl -o javascripts/require.js https://cdn.somecdn.com/require.js
$ .....
$ touch javascripts/main.js
$ ...

具体的技术选型还是要取决于你的项目需求 你说的这几种目前相对主流的选择是:包管理 npm,模块化 es6 import,前端构建 webpack。

给个建议。在满足你业务需求的情况下,使用团队最熟悉的工具……

gulp 不是打包的,是一个 task runner,越来越多的人开始弃用 gulp 纯用 npm script 了

推荐新项目就直接 npm + webpack,一个下午就学会了

主流趋势是:webpack+babel+es6+npm scripts(这一条是我的推荐)+sass+vue(或者 react 和 angular)

有人要说了,你们前端狗就喜欢折腾,但我要说的是,为什么要有 es6?为什么要有 sass?没他们肯定能实现效果,项目是给用户用的,而代码是给自己和团队看的,所以说白了就是,一切都为了写出更优美简洁的代码

另外,包管理器就认准 npm,其它 bower 什么的,赶紧扔了吧。关于 grunt 和 gulp,他们能做的 npm script 都能做,所以推荐直接用 npm script,可以省去很多中间包(如 gulp-sass)的使用

补充 @small_fish__ 提到的 css module,外加 代码检查 eslint(或者 standard)、单元测试 ava其它测试框架

@1272729223 然后用 Mithril 写 HTML,用 JSS 写 CSS,再配合 HTTP2,一切都完美了

#8 楼 @hxh1246996371 又是引人入坑的货。在我看来,除非真正做项目架构的工程师才需要去搞那么复杂的工程学,如果是写业务为主的工程师,完全没必要去瞎折腾那些玩意儿(当然除非你真的已经对于写前端业务都非常熟练了,可以去折腾下新玩意),什么gulpgruntnpm scriptswebpack对于个人或一般小团队而言,手动管理手动发布 绝对比那学习和维护那玩意和一堆链上的 (可靠不可靠的插件) 要 方便 很多很多。

#11 楼 @1272729223 额,你开心就好,你硬要扛锄头,也没人逼你自动化。国外咱暂且不说,可以看看国内有多少人在用这些了。借用@j9ywy 的话:一个下午就学会了,不知道这是有多么“复杂的工程学”。还有就是借用星爷的一句台词,你可以说我们在折腾,但能不能不要在前面加个“瞎”字

13 楼 已删除
需要 登录 后方可回复, 如果你还没有账号请 注册新账号