我正在尝试总结我对最流行的JavaScript包管理器,捆绑器和任务运行器的了解。如果我错了,请纠正我:
npm&bower是包裹经理。他们只是下载依赖项,而不知道如何自行构建项目。他们知道什么是调用webpack/ gulp/ grunt获取所有的依赖后。bower类似于npm,但是构建了一个扁平化的依赖树(与npm递归地构建不同)。含义将npm获取每个依赖项的依赖项(可能会获取相同的几次),同时bower希望您手动包括子依赖项。有时,bower和和npm分别分别用于前端和后端(因为前端中每个兆字节可能都很重要)。grunt并且gulp是使所有可以自动化的工作自动化的任务赛跑者(即,编译CSS / Sass,优化图像,制作捆绑包并缩小/翻译)。gruntvs. gulp(类似于mavenvs. gradle或配置vs.代码)。Grunt基于配置单独的独立任务,每个任务打开/处理/关闭文件。Gulp需要较少的代码量并且基于Node流,这使其可以构建管道链(无需重新打开同一文件)并使其更快。webpack(webpack-dev-server)-对我来说,它是一个可以快速重新加载更改的任务运行程序,它使您可以忘记所有JS / CSS监视程序。npm// bower插件可以代替任务运行器。它们的功能通常会相交,因此如果您需要使用gulp/ gruntover npm+插件,则会有不同的含义。但是任务运行者绝对适合复杂任务(例如“在每个构建中创建捆绑包,从ES6移植到ES5,在所有浏览器模拟器上运行它,制作屏幕截图并通过ftp部署到保管箱”)。browserify允许为浏览器打包节点模块。browserifyvs node’s require实际上是AMD vs CommonJS。
问题:
什么是webpack&webpack-dev-server?官方文档说这是一个模块捆绑器,但对我来说只是一个任务运行器。有什么不同?您将在哪里使用browserify?我们不能对node / ES6导入做同样的事情吗?您何时会使用gulp/ gruntover npm+插件?当您需要组合使用时,请提供示例