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

Joh*_*alt 0 aurelia

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

小智 6

我的猜测是你从CLI开始你的项目 - 它预设了HTTP服务器,ES6/2015,SASS,实时重新加载等等.

我创建了干净的Aurelia项目并查看了package.json - 有5个依赖项和34个dev依赖项.使用上述所有工具在当今的JS Web开发中都是标准的,从CLI生成项目可以减少前期设置所需的时间.所有这些功能都有自己的依赖关系,这就是node_modules/文件夹快速增长的原因.

底线是 - 你可以用更少的依赖开始新的Aureila项目.在他们的主页上,你可以找到只有三个的入门项目.但这也意味着您将无法访问当前使用的大多数工具.

另外,如果我错了,请纠正我,我没有给Aurelia的印象,他们的目标是将开发人员从第三方库和模块中移除,只是为了现代,快速和不引人注目.


PW *_*Kad 5

所有现代Web框架都有许多工具.原因没有特别的顺序 -

1.透明化ESNext或TypeScript - 如果您想在未来的JavaScript中编写,但让它适用于所有浏览器,则需要执行此步骤.Babel和TypeScript工具都带有额外的东西.如果你想看到报道(每个人都这样做),还有另一种工具.

2.测试 - 单元测试和端到端测试需要测试框架,测试运行器,如果你想像上面那样编写(esnext或TypeScript),你还需要进行转换.

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

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

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

6. Linting - 为你的风格一致性提供代码基础.

这些软件包中的每一个通常都有自己的依赖项,并且它们也会被删除.

这种具有单一焦点的小包装的惯例可以说比为您做任何事情的大包装更好.这允许您删除一个包并将其替换为以您想要的方式执行相同操作的包.