ACE 编辑器 - update_image_size 不工作

ACE editor - update_image_size not working

我在项目中使用 ace 编辑器 - 包括 enableEmmet: true

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.

如果您只是看看我的问题并分享一些您的科学知识,我将不胜感激。谢谢!

ace 无法访问文件系统,您需要通过 运行 服务器上的某些东西或通过将图像加载到浏览器并检查其大小来重新实现该功能。