由於js的執行特性,多個js文件合成一個文件或者進行多個js文件加載時,時需要按照指定的順序進行的,否則會出現報錯的情況。
我們看一下目前幾個主流H5引擎的做法。
白鷺的做法
當前版本的做法
在tsconfig.json中,使用的是outDir而不是outFile,這么設置ts只會講單個的ts文件直接編譯成對應的js文件,ts編譯器完全不去管js文件的加載順序。
白鷺自己的編譯器,會自己去解析ts文件,從而確定js文件的順序,用於加載和合並js文件,唯一的缺點是這種方法會導致編譯耗時較長。
新版本的做法
新版本還沒有出,只能通過官方的文章來了解一下:
大概的意思是采用ES2015+webpack的方式來實現多個TS或JS文件按照正確的順序合並成1個js文件。
Laya的做法
1.x
2.0之前的Laya,我只用過一小段時間,沒有細看具體實現,感覺和白鷺當前版本的做法應該是差不多的。
2.x
使用CommonJS的方式來開發,加入了browserify和tsify的支持來實現CommonJS的寫法可以在瀏覽器中的執行,通過這兩個庫實現多個TS文件按照正確的順序合並成1個js文件。
browserify:
http://browserify.org/
Cocos Creator
這款引擎我了解得比較少,大概看了下,采用的是CommonJS,合並成一個js文件使用的技術並不是很清楚。