javascript - 如何将基于 require.js 的脚本作为组件包含到 Angular 中
问题描述
我喜欢使用基于 Ace 编辑器的 xtext 编辑器创建 Angular 组件。您可以找到编辑器的示例https://www.eclipse.org/Xtext/documentation/330_web_support.html和https://xtext-demo.itemis.com/。
使用 require.js 将其包含到纯 html 中的代码如下所示:
require.config({
paths: {
"jquery": "webjars/jquery/<version>/jquery.min",
"ace/ext/language_tools": "webjars/ace/<version>/src/ext-language_tools",
"xtext/xtext-ace": "xtext/<version>/xtext-ace"
}
});
require(["webjars/ace/<version>/src/ace"], function() {
require(["xtext/xtext-ace"], function(xtext) {
xtext.createEditor();
});
});
现在我正在努力如何将其包含到基于 Angular 的组件中。我尝试了以下。
import { Component, OnInit, Input } from '@angular/core';
import 'ace-builds/src/ace';
import 'ace-builds/src/ext-language_tools';
import xtext from 'xtext/xtext-ace';
@Component({
selector: 'app-qml-editor',
templateUrl: './qml-editor.component.html',
styleUrls: ['./qml-editor.component.css']
})
export class MyDslEditorComponent implements OnInit {
@Input() componentId: string;
constructor() { }
ngOnInit() {
console.log('xtext', xtext);
xtext.createEditor();
}
}
当我编译我的代码时,我得到类似...
ERROR in ./node_modules/ace-builds/src/ace.js
Module not found: Error: Can't resolve '../../lib/lang' in '..my-dir..\node_modules\ace-builds\src'
ERROR in ./node_modules/ace-builds/src/ace.js
Module not found: Error: Can't resolve '../../lib/oop' in '..my-dir..\node_modules\ace-builds\src'
ace.js 文件中的 require.js 似乎无法正常工作。未正确解析所有本地引用。
同样经过数小时的谷歌搜索,我找不到解决方案。但很多主要是我对它应该如何工作的理解缺失。
对此的任何帮助将不胜感激。
解决方案
推荐阅读
- flutter - 颤动中的半屏扫描
- python - FFT 噪声频率去除
- vba - 在访问表单中输入 ID 时如何查看名称
- javascript - 具有作为 prop 传递到组件中的数据属性的对象不是 Vue 的 kebap-cases
- google-apps-script - 基于另一个单元格值保护/取消保护范围
- node.js - 如何在 Firebase 云功能中设置节点选项?
- sql - SQL Parse xml 列数据
- docker - 错误:无效或损坏的 jarfile /app.jar
- javascript - WebGL 2D 相机缩放到鼠标点
- javascript - 在 Typescript Angular 中格式化时间