主app.js
个文件有import {Route} from "./router"
。路由器 - 一个取决于页面当前url
的类,将创建此页面处理程序的实例。例如,对于页面/home/accountPage
- 路由器将以这种方式创建处理程序:return new AccountPageHandler(params)
。事实证明,在路由器中导入了所有页面的所有处理程序(以及它们)。当我System.import ( 'js/app.js')
时,我将加载所有脚本,包括和不必要的 - 因为它们被导入到路由器中,并且路由器在app.js中导入。
我该如何制作,不会一次导入所有内容,只有我想要使用的内容?我确信很多开发人员已经提前解决了这个问题,但是如何解决这个问题 - 我不知道,因为我第一次遇到这个问题。
P.S。
我的javascript是从打字稿中生成的(如果突然这会影响解决问题的选项)。
答案 0 :(得分:1)
在没有实际代码的情况下,我的猜测是SystemJS导入了所有脚本,因为你import
所有页面的所有处理程序。您可以做什么(如果您的路由器支持承诺和页面处理程序的异步加载)。是使用System.import('specific_page_handler.js')
仅导入当前所需的页面处理程序。
但是根据你的应用程序的大小,以及你可以延迟加载的单独块的大小,只需创建一个缩小的包,设置一个长的缓存过期,并立即加载所有可以很好。增加的复杂性可能会带来微小的收益。