为什么Aurelia安装了这么多依赖项?

为什么Aurelia安装了这么多依赖项?,aurelia,Aurelia,我很想知道为什么当我创建一个新的Aurelia项目时,每个项目都会安装+600个node_模块。可以理解的是,这些模块总体上不会占用很多空间,但是所有这些模块都是必需的吗?我的印象是,Aurelia的目标是帮助开发人员摆脱对第三方库的依赖,因此每个项目都有大量的第三方库,这似乎很奇怪 我猜您是从CLI开始您的项目的,CLI附带了HTTP服务器、ES6/2015、SASS、实时重新加载等等 我创建了clean Aurelia项目,并查看了package.json——有5个依赖项和34个开发依赖项。

我很想知道为什么当我创建一个新的Aurelia项目时,每个项目都会安装+600个node_模块。可以理解的是,这些模块总体上不会占用很多空间,但是所有这些模块都是必需的吗?我的印象是,Aurelia的目标是帮助开发人员摆脱对第三方库的依赖,因此每个项目都有大量的第三方库,这似乎很奇怪

我猜您是从CLI开始您的项目的,CLI附带了HTTP服务器、ES6/2015、SASS、实时重新加载等等

我创建了clean Aurelia项目,并查看了package.json——有5个依赖项和34个开发依赖项。在今天的JS web开发中,使用上述所有工具在某种程度上是标准的,从CLI生成项目减少了前期设置所需的时间。所有这些功能都有自己的依赖关系,这就是
node\u modules/
文件夹快速增长的原因

底线是——您可以用更少的依赖项启动新的Aurela项目。在他们的主页上,你可以找到三个。但这也意味着你将无法使用目前使用的大多数工具


另外,如果我错了,请纠正我,我还没有得到这样的印象:Aurelia曾试图将开发人员从第三方LIB和模块中转移出来,只是为了现代化、快速和不引人注目。

所有现代web框架都有大量的工具。没有特别顺序的理由—

1。Transpiling ESNext或TypeScript-如果您想在未来的JavaScript中编写,但却能在所有浏览器中运行,则需要此步骤。Babel和TypeScript工具都附带了额外的东西。如果你想看到覆盖率(每个人都想),还有另一个工具

2。测试-单元测试和端到端测试需要测试框架、测试运行程序,如果您想像上面那样编写(esnext或TypeScript),还需要传输

3。模块加载/捆绑-Require.js、JSPM/System.js、WebPack等。。。用于允许代码在浏览器中实际运行。如果没有模块加载器,您就无法将代码分解成单独的文件。如果没有bundler,您将在生产中加载大量额外的文件

4。为您的应用程序提供服务-如果您想在本地运行应用程序,您需要一种方法来为其提供服务并观察更改

5。调试-是否要调试?现在,您需要一种方法将提供给浏览器的文件调试回原始源

6。Linting-为保持风格一致性,对代码库进行Lint

这些包中的每一个通常都有自己的依赖项,并且它们也会被拉下来


这种只有一个焦点的小型软件包的惯例可以说比为您做任何事情的大型软件包要好。这允许您删除一个包,并将其替换为具有相同功能但符合您需要的方式的包

90%的节点单元是构建工具。虽然它们不是必需的,但它们可以让您的生活更轻松。是的,一定要使用CLI。我对我的第三方声明感到困惑是因为我听了罗布·艾森伯格(Rob Eisenberg)在《汉塞尔会议纪要》(Hansel Minutes)上的发言和读了他的帖子。我是Aurelia的新手,所以我最初的反应是他指的是第三方库,但现在我相信他指的是核心Aurelia框架没有第三方依赖关系?