导入exif-js库未捕获的ReferenceError:EXIF未定义错误

时间:2017-07-18 22:40:39

标签: javascript ruby-on-rails vue.js exif-js

我在rails应用程序中使用vue并尝试将exif-js library导入到我的脚本中,以便访问全局EXIF变量以便这样使用

def some_function
    Device.find(some_id).global_function
end

我已按照这些yarn instruction下载了该软件包。

var exif = EXIF.readFromBinaryFile(new BinaryFile(this.result));

我意识到我需要使用javascript import将其包含在我的脚本中并尝试过

yarn add exif-js -- save

以及其他差异,例如<script> import EXIF from 'exif-js' previewPhoto() { var reader = new FileReader() reader.onload = () => { var exif = EXIF.readFromBinaryFile(new BinaryFile(this.result)); } </script> ,但我不断收到import 'exif-js'错误。如何成功导入库以便在脚本中使用它。

2 个答案:

答案 0 :(得分:1)

您可以以CommonJS方式使用它:

<script>
  var EXIF = require('exif-js');
  previewPhoto() {
    var reader = new FileReader()
    reader.onload = () => {        
      var exif = EXIF.readFromBinaryFile(new BinaryFile(this.result));
    }
  }
</script>

答案 1 :(得分:0)

虽然浏览器正在努力实现本机es6模块支持,但目前大多数/所有浏览器本身都不支持

import(如果仔细查看您链接的MDN文章的顶部)。因此,如果您使用webpack或其他构建工具 ,则需要使用其他方法。

您可以通过根html文档头部的脚本标记将exif-js库放入您的应用中:

<script src="https://unpkg.com/exif-js@2.2.1"></script>

解析文件后,可以使用全局EXIF变量,您可以运行代码:

previewPhoto() {
    var reader = new FileReader()
    reader.onload = () => {        
        var exif = EXIF.readFromBinaryFile(new BinaryFile(this.result));
}

请注意,胖箭头函数() =>也会有limited browser support