Javascript 如何根据Angular中的路径和角色加载每个库/源?

Javascript 如何根据Angular中的路径和角色加载每个库/源?,javascript,angularjs,performance,Javascript,Angularjs,Performance,我有一个有角度的网站,我用它作为我的网站面板,面板中有一些不同的角色,一些管理员角色和一些不同类型的用户,我可以处理这些,并通过他们的角色限制不同的用户和路由/视图 问题出在哪里?我将所有需要的*.js文件捆绑到一个名为bundle.js的文件中,该文件工作正常,但问题是文件太重,很难仅用一个文件调试程序bundle.js超过2MB,我真的需要更改它 例如,我有一个角色使用了d3,这是一个很大的库,只在一条路径中。那么,当某些用户可能需要它时,我为什么要将它添加到bundle.js 问题: 有没

我有一个有角度的网站,我用它作为我的网站面板,面板中有一些不同的角色,一些管理员角色和一些不同类型的用户,我可以处理这些,并通过他们的角色限制不同的用户和路由/视图

问题出在哪里?我将所有需要的
*.js
文件捆绑到一个名为
bundle.js
的文件中,该文件工作正常,但问题是文件太重,很难仅用一个文件调试程序<代码>bundle.js超过2MB,我真的需要更改它

例如,我有一个角色使用了
d3
,这是一个很大的库,只在一条路径中。那么,当某些用户可能需要它时,我为什么要将它添加到
bundle.js

问题:

有没有办法,我可以使用单页应用程序,但每个视图/路由仍然包含自己的外部Java脚本


捆绑文件有害吗?有没有真正的项目将所有文件捆绑在一个js文件中?

这个问题非常广泛,因为它高度依赖于您如何实现角色以及如何组织代码

对于根据用户及其角色延迟加载模块的问题,您可以查看类似于此工作的库(延迟加载模块)

您还可以为应用程序制作几个捆绑包(每个角色一个),并使用服务器端脚本加载所需的捆绑包

捆绑销售有害吗

正如你所说的,如果你有很多不同的用户,或者你不知道用户在第一页之后会去哪里(例如,一个有数百个屏幕的应用程序),那么捆绑可能是一个问题

但是,您应该始终绑定,因为加载单个大文件比加载数百个小文件更方便网络

事实上,你必须明智地捆绑,并为每个页面或页面组或用户角色等制作一个捆绑包。一切取决于应用程序的工作方式


因此,根据您的需要,您应该制作几个捆绑包,不管发生什么情况,比如说一个普通的捆绑包,您可以在其中存储您的通用功能、模块、路由等,其他捆绑包则取决于您想要显示的角色或页面。

2MB对我来说并不大。在我当前的项目中,4.7mb的2个捆绑包:第三方LIB和项目的code@Ivan我认为他是对的,2MB对于js来说是一种大文件!很难调试either@Kermani我正在开发和生产环境中使用webpack。dev环境不生成任何捆绑包,因此易于调试,无需每次我同意@n00d13(这样一个硬名称)时都等到构建完成,但我认为捆绑文件很难调试,如果一个函数有问题,可能很难调试并在大文件中找到它,正如他所说,如果你使用源代码映射,超过2Mbit就不是了