2016-08-02 359 views
1

我正在使用Browserify,Babel,吞嚥並注意到一種奇怪的行爲。Browserify,Babel和文件擴展名

比方說,我有一個名爲'./lib.js'的文件。是ES6,我應該能夠使用兩種語法:

import lib from "./lib.js" 
import lib from "./lib" 

但是第一種語法總是工作,但對於一些模塊第二個沒有。而不是通過我的出口獲取對象,我得到一個空的對象。

browserify的行爲與我們是否包含擴展名不同?它對我們應該如何申報出口有額外的限制嗎?

其實這是一個問題,因爲我最近在我的項目中添加了Typescript,tsify。由於某些原因,當我導入從打字稿編譯的文件時,我必須指定.js擴展名(它不工作沒有)。但是,當我從另一個.ts文件導入.ts文件時,我不想指定擴展名,因爲我希望Typescript能夠拾取.ts文件(當我沒有指定擴展名時它會執行此操作),並且使用Browserify拾取已編譯的文件js文件(它也是如此,但無法識別模塊)。

回答

2

由於某些原因,當我導入從typescript編譯的文件時,我必須指定.js擴展名(它不工作)。

這是因爲TypeScript可能無法檢測到js文件。請將allowJs添加到您的編譯器選項。

更多

我這樣做,顯示allowJs使用及其影響,你可能會發現有用的視頻:https://www.youtube.com/watch?v=gmKXXI_ck7w