我习惯于简单和小型的JS项目,其中JS依赖项会被连接并压缩为构建过程的一部分,使用gulp之类的工具,而HTML中的script标签包含了指向那个压缩后的JS文件的硬编码路径。这并不优雅,可能有几个缺点,但从概念上讲,这是一种简单的方法。
但对于更大的项目,我了解到应该考虑像bower、browserify、requirejs、webpack等打包系统。与我所熟悉的方式相比,使用它们有什么好处呢?它们如何帮助开发过程?
我提到的这些技术是彼此竞争的,还是有些技术实现不同的目的,可以一起使用?它们之间有什么区别?
另外,我查看了webpack,有些地方描述它好像是gulp的替代品。我认为gulp是一个构建系统,与这些打包工具不同?
编辑:这些概念与AMD或CommonJS有什么关系?