2015-09-20 15 views
0

FileAPI庫(https://github.com/mailru/FileAPI/issues/202)不正式支持CommonJS模塊。我試過使用browserify-shim,但我無法使它工作。在require ing fileapi之後,我只是得到一個空的物體。我創建了這裏再現回購https://github.com/Prinzhorn/browserify-fileapi在瀏覽器中使用FileAPI庫

相關的package.json部分

{ 
    "dependencies": { 
    "fileapi": "2.0.15" 
    }, 
    "devDependencies": { 
    "browserify": "11.1.0", 
    "browserify-shim": "3.8.10" 
    }, 
    "browser": { 
    "fileapi": "./node_modules/fileapi/dist/FileAPI.html5.js" 
    }, 
    "browserify-shim": { 
    "fileapi": "FileAPI" 
    } 
} 

如果你想在本地試試吧:

git clone [email protected]:Prinzhorn/browserify-fileapi.git 
npm install 
npm run build 
chromium-browser index.html 

查覈在鉻控制檯,你」將看到運行console.log(Object.keys(require('fileapi')))的空數組。請注意,有一個全球window.FileAPI與正確的API。

有誰知道如果browserify-shim能夠填充FileAPI?因爲我相信它做一些奇特的事情來管理它的依賴關係(連接文件期望某些全局變量)。

回答

1

你需要告訴browserify使用browserify-墊片作爲在this example

概述了的package.json變換主要是你錯過了:

"browserify": { 
    "transform": [ "browserify-shim" ] 
} 
+0

謝謝,這做的伎倆。但是,爲什麼當我向CLI提供轉換時,它不起作用,例如'browserify index.js -t browserify-shim -o bundle.js'? – Prinzhorn

+0

我不知道爲什麼,它應該可以工作:( –