使用带有browserify的FileAPI库

时间:2015-09-20 10:34:35

标签: browserify browserify-shim

FileAPI库(https://github.com/mailru/FileAPI/issues/202)不正式支持CommonJS模块。我尝试过使用browserify-shim,但我无法使其正常运行。在require fileapi之后,我只得到一个空对象。我在https://github.com/Prinzhorn/browserify-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 git@github.com:Prinzhorn/browserify-fileapi.git
npm install
npm run build
chromium-browser index.html

在Chromium中查看控制台,您将看到运行console.log(Object.keys(require('fileapi')))的空数组。请注意,全局window.FileAPI具有正确的API。

有没有人知道browserify-shim是否能够填充FileAPI?因为我相信它管理它的依赖性做了一些奇特的事情(连接文件需要某些全局变量)。

1 个答案:

答案 0 :(得分:1)

您需要告诉browserify使用browserify-shim作为package.json中的转换,如this example中所述

主要是你失踪了:

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