2017-01-31 12 views
1

Я использую редактор туза для своего проекта, включая enableEmmet: true.Редактор ACE - update_image_size не работает

https://ace.c9.io/demo/emmet.html

Но, видимо, действие update_image_size не работает, а я получаю сообщение об ошибке:

TypeError: Cannot read property 'locateFile' of undefined 

Фрагмент кода: https://github.com/cloud9ide/emmet-core/blob/master/emmet.js#L9972-L10002

/** 
* Returns image dimensions for source 
* @param {IEmmetEditor} editor 
* @param {String} src Image source (path or data:url) 
*/ 
function getImageSizeForSource(editor, src, callback) { 
    var fileContent; 
    var au = require('actionUtils'); 
    if (src) { 
     // check if it is data:url 
     if (/^data:/.test(src)) { 
      fileContent = require('base64').decode(src.replace(/^data\:.+?;.+?,/, '')); 
      return callback(au.getImageSize(fileContent)); 
     } 

     var file = require('file'); 
     var absPath = file.locateFile(editor.getFilePath(), src); 
     if (absPath === null) { 
      throw "Can't find " + src + ' file'; 
     } 

     file.read(absPath, function(err, content) { 
      if (err) { 
       throw 'Unable to read ' + absPath + ': ' + err; 
      } 

      content = String(content); 
      callback(au.getImageSize(content)); 
     }); 
    } 
} 

Журнал указал var file = require('file'); всегда undefined.

Если вы просто взгляните на мою проблему и поделитесь своей наукой, я был бы очень благодарен. Благодаря!

ответ

1

У Ace нет доступа к файловой системе, вам нужно переопределить эту функцию, либо запустив что-то на сервере, либо загрузив изображение в браузер и проверив его размер.

+0

Большое спасибо за вашу любезную информацию! – UserNaN