我有一个使用 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
请帮忙。
答案 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();
});
}
},