2017-08-10 167 views
0

我有一個瀏覽器應用程序的項目,我想分成兩部分。 作爲一個小例子,可想而知,在./core我:如何從排除模塊(ES6)導入?

// core.js 
import SuperClass from "../core/SuperClass";  
export {SuperClass}; 

// SuperClass.js 
class SuperClass 
{ 
    constructor() 
    { 
     console.log('SuperClass constructor'); 
    } 
} 
export default SuperClass 

和目錄./game具有

//game.js 
import SuperClass from "../core/SuperClass"; 
console.log(SuperClass); 

如果我建立與game.js爲切入點,一切都很好,因爲所有的依賴進入捆綁。

但是,如果我排除的文件從./core(通過使用排除browserify的功能),並與game.js之前進行獨立的捆綁與他們和負載:

<script src="scripts/core.js"></script> 
<script src="scripts/game.js"></script> 

我得到:未捕獲的錯誤:無法從game.js中找到模塊'../core/SuperClass'

在運行時爲game.js提供這些依賴關係的方法是什麼?我的構建過程使用了一些gulp,babelify和browserify。

+0

爲什麼要將應用程序拆分爲兩個單獨的包? – adrice727

+0

有許多應用程序需要在單個文件中加載的通用代碼,並且存在與應用程序相關的代碼,這是不同的 –

回答

1

如果要通過位於代碼之前的<script>標記添加代碼,則可以假定該代碼存在,作爲全局變量/類/庫,因爲它已存在,所以不需要導入它。例如,使用優秀的舊JQuery:當您將文件放入HTML文件時,您知道$無所不在

+0

非常感謝,這似乎是我需要的。我想我的想法堅持了我必須導入一切的想法。另外我是新來的JS,可能很明顯:)順便說一句,如果有人遇到這個問題,你還需要在browserify中使用standalone選項才能工作 –