`ember build`究竟做了什么

时间:2018-01-24 05:34:50

标签: ember.js

我想知道使用ember build构建Web应用程序的过程中包含的内容,因为我知道JavaScript是解释语言,不需要编译(与Java或C ++不同)。

1 个答案:

答案 0 :(得分:2)

你是对的,JavaScript是解释而不是编译语言。您也很可能知道,在Web开发中,我们使用<script>标记将JavaScript代码包含到html页面中。但在某些时候,Web应用程序变得如此之大,以至于开发人员需要将js代码分解为少量文件。这不是问题 - 我们可以有2个或3个或5个script个标签。但是对于我们需要像ember这样的框架的更大的应用程序,我们需要将代码分成几十甚至几百个文件。但是在页面上有几十个script标签与2-3不同 - 大量的外部资源会减慢页面加载过程。这是第一个问题。这意味着开发人员需要一个工具来至少将所有文件连接成一个。

其他问题 - 我们的js代码非常格式化。但格式化意味着许多额外的字节 - 空格/制表符,新行,长变量名称。所有额外的字节也会减慢页面加载速度。为了解决这个问题,人们发明了其他工具 - 丑陋的工具,它们采用格式化的代码并剥离所有这些额外的字节。

接下来,不仅仅以正确的顺序连接所有js文件,而是让一些模块系统隔离每个模块中的代码然后在任何其他模块中需要该模块,这样更方便。但是然后在一个文件中连接所有内容并对其进行uglify。

你听说过es6吗?它是一个新的,更好的js标准,但它仍然不受所有浏览器的支持。要使用它的功能,您需要一个工具,将es6代码转换(转换)到es5(在任何地方都支持)。该工具被称为&#34; babel&#34;。

此外,有时开发人员需要管理非js资产,如css或图像 - 连接样式,移动图像。

构建是运行所有这些任务的过程,将许多漂亮的源文件转换为丑陋但有效的文件。 Ember-cli是一个完成所有工作的工具集,ember build运行构建Web应用程序所需的所有任务。其他一些框架可能有自己的工具集,如果您不使用任何框架,则存在gulpwebpack等工具,这些工具与框架无关,有助于创建自己的构建过程。

我希望我回答你的问题。事实上,ember-cli比我描述的工作更多,您可以在ember-cli.com找到更多功能和详细信息。