在初始化框架时,主页上的导入语句过多

在初始化框架时,主页上的导入语句过多

问题描述:

在我的角度项目中,我计划为每个页面分别提供一个.js文件,并为每个服务分别提供一个.js文件。在初始化框架时,主页上的导入语句过多

但是,当我开始编写代码时,我意识到我的index.html中有很多import语句。这将导致用户不得不加载所有的.js文件,即使他们可能不需要它。

的.js文件为我的index.html

<!-- JS --> 
<script src="js/vendor/angular.js"></script> 
<script src="js/app/app.js" ></script> 

<!-- controllers --> 
<script src="js/app/controllers/roomController.js"></script> 
<script src="js/app/controllers/dashBoardController.js"></script> 

<!-- services --> 
<script src="js/app/services/dashBoardService.js"></script> 
<script src="js/app/services/roomService.js"></script> 
<script src="js/app/services/chatService.js"></script> 
<script src="js/app/services/videoService.js"></script> 

的一个例子是有任何解决这个?

将每个控制器,每个服务,每个指令......放在一个单独的文件中,这是一个最佳实践,所以您要以正确的方式进行操作。

但是,正如您注意到的那样,用户(以及服务器!)最好下载最少数量的文件。您的index.html适合开发,但在生产中,您必须将所有文件压缩到一个文件中,通常使用类似UglifyJS或的工具。

+0

即使你压缩和Concat的所有.js文件,但它仍然需要用户加载所有的JavaScript文件。我正在寻找一种解决方案,只在每个页面上加载所需的js文件。 –

+1

你错过了句子中的“in one”部分;)。 – Blackhole

这是一个已知问题,特别是对于大型项目。一个可行的解决方案是使用RequireJs。你可以在网上找到大量资源,例如你可以试试this

我有完全相同的问题,所以决定使用RequireJS来允许按需加载我的angularJS脚本。我创建了一个名为angularAMD包装,希望可以帮助你整合RequireJS和AngularJS:

http://marcoslin.github.io/angularAMD/