import loadScript from './loadScript' import ELEMENT from 'element-ui' import pluginsConfig from './pluginsConfig' // monaco-editor单例 let monacoEidtor /** * 动态加载monaco-editor cdn资源 * @param {Function} cb 回调,必填 */ export default function loadMonaco(cb) { if (monacoEidtor) { cb(monacoEidtor) return } const { monacoEditorUrl: vs } = pluginsConfig // 使用element ui实现加载提示 const loading = ELEMENT.Loading.service({ fullscreen: true, lock: true, text: '编辑器资源初始化中...', spinner: 'el-icon-loading', background: 'rgba(255, 255, 255, 0.5)' }) !window.require && (window.require = {}) !window.require.paths && (window.require.paths = {}) window.require.paths.vs = vs loadScript(`${vs}/loader.js`, () => { window.require(['vs/editor/editor.main'], () => { loading.close() monacoEidtor = window.monaco cb(monacoEidtor) }) }) }