为什么babel-loader是webpack的一部分,而不是babel本身?

问题描述 投票:2回答:1

我正在学习构建系统如何在JavaScript中工作。如果babel-loader是将React转换为JavaScript的编译器,为什么它是webpack插件的一部分?

transpilingbundling不是一个单独的过程吗?

并且是否有资源说明所有这些框架如何组合在一起并使构建系统详细工作?我似乎只能在官方文档中找到高级概述。

javascript webpack build babel babel-loader
1个回答
1
投票
  • Webpack是一个“模块捆绑器”。它本身不会改变程序的来源(注意:对此有一些注意事项,例如压缩),仅将大型代码库的所有不同部分结合在一起,可以更轻松,更有效地通过Internet进行交付(取决于用例;您可能会捆绑服务器端代码,在这种情况下,好处主要是能够合并构建工具。]
  • Webpack加载程序用于在捆绑过程中处理文件。它特定于webpack(除非没有webpack,否则您不会使用babel-loader,除非在与其他构建工具互操作的情况下使用,但即使那样也不会单独使用)。
  • 在webpack配置中,指定了文件扩展名到webpack加载程序的映射。例如,一种常见情况是使用.ts处理ts-loader文件。这样,webpack会将带有.ts扩展名的文件传递给TypeScript编译器,并在捆绑包中而不是源程序中使用此编译的输出。
  • Babel是编译器;它需要一个ESNext程序并生成等效的ES3 +兼容程序。
  • babel-loader对TypeScript做ts-loader做;将文件传递给Babel编译器,并返回要在原始源程序的包中使用的结果。

不是转码和捆绑是一个单独的过程吗?

是。这就是为什么我们有“ webpack捆绑器”,“ Babel编译器/编译器”和babel-loader将两者连接在一起的原因。没有babel-loader,Webpack将无法通过Babel处理文件。

希望有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.