PSD.js中的反应错误fs.readFileSync不是函数

时间:2017-02-14 10:28:03

标签: javascript reactjs webpack psd

我有一个使用 psd.js 的reactjs项目,并且在我的dropzone配置上就像这样

accept: function(file, done){
        const reader = new FileReader();
        reader.onload = handleReaderLoad;
        reader.readAsDataURL(file);
        function handleReaderLoad(evt) {
          console.log(evt.target.result);
          let psdFile = PSD.fromFile(evt.target.result);
          psdFile.parse();
          console.log(psdFile);
        }
        done();
      },

错误是:

Uncaught TypeError: fs.readFileSync is not a function
    at Function.fromFile (init.coffee:6)
    at FileReader.handleReaderLoad (index.js?03a7:153)

在我的webpack配置中包括:

node: {
    fs: 'empty'
  },

因为如果我不包含它,则错误为:not found fs module

请帮忙。

1 个答案:

答案 0 :(得分:0)

您应该使用PSD.fromEvent(evt),而不是PSD.fromFile

前者从文件输入中读取blob,而后者尝试访问浏览器上下文中明显不存在的文件系统。

所以我猜你的代码应该是这样的(但我不太确定)

accept: function(file, done){
    const reader = new FileReader();
    reader.onload = handleReaderLoad;
    reader.readAsDataURL(file);
    function handleReaderLoad(evt) {
      PSD.fromEvent(evt).then(function (psd) {
           // here you can access the parsed file as psd
           console.log(psd.tree().export());
          done();
      });
    }

  },