无法在 vue webpack 项目中导入 Ace 文档对象?

我想在我的 vue 和 webpack 项目中使用 Ace 编辑器,我想用一个Ace Document实例附加每个文件,所以我遵循(默认导入)

import Ace from 'ace-builds'

当我想创建一个文档时。

let doc = new Ace.Ace.Document('')

但是 Chrome 开发工具总是告诉我

TypeError: Cannot read property Document' of undefined at FileTree.vue:177

而且let doc = new Ace.Document('')也不工作

我有一个导入 Ace 的 js 文件,它运行良好,代码在这里。编辑器.js

我的代码(在 vue 方法中:{}):

addFile (e) {
  let tree = this.$refs.maintree
  if (this.currentNode === undefined) {
    this.currentNode = tree.getNode(1)
  }
  this.openAddFilePrompt().then(({value}) => {
    let doc = new Ace.Ace.Document('')
    if (this.currentNode.data.detail.type === 'file') {
      let parentNode = this.currentNode.parent
      tree.append({detail: {type: 'file', src: '', document: doc}, id: this.maxId++, label: value}, parentNode)
      return
    }
    this.maxId++
    tree.append({detail: {type: 'file', src: '', document: doc}, id: this.maxId, label: value}, this.currentNode)
  }).catch((err) => {
    console.log(err)
  })
},

这是我的d.ts文件ace-builds

在此处输入图片说明

从图片中可以看出,Document 接口放在 Ace 命名空间中,我将总模块导入为 Ace,所以我想我应该用 新建 Document 对象new Ace.Ace.Document,即defaultImport.Namespace.Interface


文档界面如下。ace-builds通过 npm 安装export interface Document extends EventEmitter

在此处输入图片说明


ace-builds 文件夹结构如下

在此处输入图片说明

我的问题:

为什么我的导入不起作用,而且我无法创建文档对象?

我试图给你一切可以帮助你解决我的问题

最后,我尝试了很多方法后解决了这个问题。

我不知道为什么我不能export interface从命名空间导入我在 中找到了 require 函数ace.d.ts,所以我改变了

let doc = new Ace.Ace.Document('')

let Document = Ace.require('ace/document').Document

当我需要文档对象时,只需 let document = new Document()

有用。

希望这可以帮助与我有相同问题的其他人。


我是怎么解决的?

我搜索ace.js关于exports.Document发现ace/document 在此处输入图片说明

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在vue-cli Webpack项目中导入Font Awesome

如何在Webpack项目中导入XML编码的mxGraph?

无法在vue中导入Observable

无法在Android项目中导入project.R

无法在 Ionic-Angular 项目中导入 AnimeJS

无法在 Reactjs 项目中导入 font-awesome

无法在Maven项目中导入java.lang.reflect?

无法在我的Java项目中导入csvwriter

无法在 Gulp 项目中导入 React Router Dom

无法在 angular2 项目中导入 lodash

无法在我的项目中导入Payfort库

无法在角度项目中导入 socket.io-client

无法在Maven项目中导入abeel util

如何从Vue + webpack + vue-loader项目中的不同js文件导入函数

带有需要的Vue Webpack动态导入无法正常工作

使用Webpack在vue.js项目中使用('@')登录路径进行ES6导入

无法在Webpack TypeScript项目中摇晃lodash

Webpack无法挂载Vue组件

Vue / Webpack无法编译图像

无法在Vue中导入路线链接组件

在我的 webpack (nuxt) 项目中导入其他模块使用的模块

在由jsconfig.conf和webpack管理的js项目中导入图像

将ace代码编辑器导入Webpack,ES6,TypeScript项目

如何在Vue Nuxt项目中导入整个SCSS文件夹?

如何在本地文件中导入数组以在 Vue 3 TypeScript 项目中使用?

我无法在带有eclipse的play项目中导入play-slick dep

Java / Eclipse基本问题:无法在Android项目中导入标准库

能够安装 Flask-bcrypt 但无法在我的项目中导入 Flask bcrypt

无法在React项目中导入materialize-css以使用Chips