之前开发前端时,手动管理 js 包,用 seajs 模块化,然后 npm 工具打包
现在针对包管理就有 bower 和 npm,模块化就有 seajs 和 requirejs,打包常用的也有 gulp 和 grunt
通常现在倾向于 npm 管理,requirejs 模块,gulp 打包?
好久没关注前端,好像又有 webpack...,大家是怎么处理的?
前端选型几大原则
如果是我自己有决定权 (只要是可控的小团队内),我会选requirejs(仅仅为了模块化编程),bower
都不用,更不要用yeoman
等,也不用grunt
,gulp
,browserify
, 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(其它测试框架)
#8 楼 @hxh1246996371 又是引人入坑的货。在我看来,除非真正做项目架构的工程师才需要去搞那么复杂的工程学,如果是写业务为主的工程师,完全没必要去瞎折腾那些玩意儿(当然除非你真的已经对于写前端业务都非常熟练了,可以去折腾下新玩意),什么gulp
,grunt
,npm scripts
, webpack
对于个人或一般小团队而言,手动管理,手动发布 绝对比那学习和维护那玩意和一堆链上的 (可靠不可靠的插件) 要 方便 和 快 很多很多。
#11 楼 @1272729223 额,你开心就好,你硬要扛锄头,也没人逼你自动化。国外咱暂且不说,可以看看国内有多少人在用这些了。借用@j9ywy 的话:一个下午就学会了,不知道这是有多么“复杂的工程学”。还有就是借用星爷的一句台词,你可以说我们在折腾,但能不能不要在前面加个“瞎”字