奥雷利亚:Webpack、JSPM还是CLI?

22
我已经使用Aurelia-CLI开发了约3个月,到目前为止我很喜欢。我认为它是一个稳定的框架,并且在支持和使用方面显然逐步上升。这是一件好事!在我开发更多的大型应用程序之前,我想知道是否在使用最佳的构建系统。我只尝试过Aurelia-CLI,不太熟悉Webpack或JSPM,因此不知道我错过了什么。使用其他两种构建系统是否有明显的优势或缺点,还是使用CLI最干净、最受支持的方法?由于我是独立开发,没有任何外部限制。谢谢你的帮助。
4个回答

39

更新

这个答案已经近两年了。欢迎您研究最新动态并提供更全面的答案,我可以替换此答案或指向那个答案。谢谢!

Aurelia CLI

Aurelia CLI非常适合入门。需要注意的是,在幕后,CLI使用require.js,但是通过aurelia.json代理应用程序的配置。这意味着您需要了解如何配置aurelia以便与require.js配合使用。一旦您需要开始配置以匹配您的工作流程或改变构建步骤,它就会有点繁琐。我们正在努力改进这一点。Aurelia CLI计划有许多功能,但由于在撰写本文时它处于alpha / beta状态,因此通常应在概念验证或其他较小的应用程序中使用,而不是生产就绪的大型应用程序。

WebPack

目前,Webpack可以说是最受欢迎的框架。 Webpack不是一个模块加载器,而是一个打包工具。这很重要,因为尽管我们努力使Aurelia与所有模块加载器兼容,但默认情况下,Webpack不负责加载模块,因此动态加载的应用程序需要开发人员进一步扩展。 Webpack在创建优化的包方面很强大,并且只要您熟悉配置Webpack就可以轻松使用。由于React使用Webpack导致其受欢迎程度非常高,因此GitHub上有更多的星号。但很难说在使用Aurelia时是否最佳选择。

JSPM / System.js

有些骨架使用 JSPM 和 System.js。原因是这些解决方案最接近“规范兼容”。JSPM 在从 JSPM 注册表 加载时尽可能地提供帮助。如果注册表中还没有,则可以直接从 NPMGitHub 加载。从模块加载的角度来看,您将使用一个 config.js 文件,该文件在安装依赖项以改善开发工作流程时通常会被自动维护。

侧重说明

目前,在大多数较大的应用程序上,我通常更喜欢使用 JSPM/System.js,因为我非常了解工具和提供的控制。我在许多处于生产状态的 Aurelia 应用程序上工作,并且通常将 CLI 保留用于较小的概念验证应用程序,而 WebPack 是一个很好的替代方案,但我目前更喜欢 JSPM/System.js 的灵活性和理解能力。


1
这个回答应该比我的得到更多的赞! - Ashley Grant
@pw-kad 您的回答仍然相关吗?我有印象说 JSPM 已经被更改的模块加载程序规范所取代,而且看起来 WebPack 是新的首选方式(看看 aurelia 新闻)。 我们自己正在使用 jspm/systemjs,并且感到有些困惑(在 gulp 中使用自定义构建步骤)/ 在 jspm/systemjs 堆栈中被遗忘。 - Cohen

9
CLI目前还没有完整的功能,但它是一个更简单的设置。Webpack基本上可以做任何你想做的事情,但你将像维护Aurelia代码一样维护你的webpack配置。
好吧,也许不完全一样,但你必须学习Webpack才能使用它。Aurelia CLI易于入门,但有一些明显的限制。例如,引用外部资源的CSS文件在Aurelia CLI中无法工作,但在Webpack中应该可以正常工作。

你能详细说明或举例一个与Aurelia CLI不兼容的外部资源吗? - E. Sundin
2
例如,一个引用了图像文件的 CSS 文件。 - Ashley Grant

4

首先,如果这篇文章因其主观性质而被关闭,我能理解。

我认为是时候重新审视有关Aurelia CLI作为二流工具的答案了。我非常尊重PW KadAshley Grant两位,但我不再相信像这样的说法是正确的:

虽然Aurelia CLI计划推出许多功能,但目前它仍处于alpha / beta状态,通常应在概念验证或其他较小的应用程序上使用,而不是用于生产级别的大型应用程序。

值得注意的是,我有一个生产应用程序早些时候我使用Aurelia CLI开始开发,但基于上述原因改用JSPM。但最近,我从头开始使用CLI重新构建了同一应用程序,我意识到它更容易使用,特别是在管理模块和发布方面! 而且这是一个带有Google Maps,Google Analytics,Auth0,DevExpress,Bootstrap等组件的应用程序。

我认为现在是时候给Aurelia CLI一些关注了。它已经准备好了。


2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接