但是,基于这两者的经验有限,基于我对它们的作用的理解,有一个基本问题。一个webpack加载器似乎正在将源从一种形式转换为另一种形式。另一方面,Babel(是一个编译器)将您的新js转换为旧js(可在所有浏览器上运行)。
两者似乎都做得非常相似。为什么我们不能仅使用“将新js转换为旧js”的webpack加载器,而不是在管道中使用Babel?
答案 0 :(得分:1)
您的理解几乎是正确的,除了装载程序和编译程序的用例。加载程序是Webpack生态系统中的通用术语,而转译程序是加载程序的一个示例(例如babel-loader是负责翻译js代码的加载程序)。
为什么我们不能只使用Webpack加载程序将新的js转换为旧的js,而不是在管道中使用Babel?
因为没有加载程序可转换Webpack随附的js代码。这是list of loaders。 Webpack团队维护其中的一些。
答案 1 :(得分:0)
Babel并非特定于webpack。
Webpack加载程序通常只是翻译器的包装。 Webpack需要一个加载器来对转译器进行输入和输出,就像babel-loader
对于Babel一样。
Webpack需要装载程序,因为没有用于编译程序的标准API:有些具有JavaScript API,有些使用stdin / stdout,有些写入文件...