javascript - 将自定义 ACE 编辑器模式导入 Brace 时,需要调用找不到帮助模块
问题描述
我尝试使用Brace(ace 编辑器的 browserify 兼容版本)实现ACE Editor lib的自定义模式。
我有这个 ace 模块,可以在没有 Brace 的其他项目上正常工作。当此代码使用 require 函数导入模块/扩展时,即使我将文件放在正确的文件夹中,内部要求也会损坏。
我在哪里尝试放置文件,然后导入
- 尝试 1:节点模块文件夹:
node_module/brace/mode/[files here]
- 尝试 2:应用程序文件夹:
src/ace/[files here]
这是错误:
mode-clickhouse.js?51d8:14 Uncaught TypeError: Cannot read property 'ClickhouseHighlightRules' of undefined
它表明导入后的要求无法找到导入模块。Ace 模式来自 Tabix.io 项目, ClickHouse的 GUI
这是我导入此自定义 ACE Mode的方式。我在这里使用 Vue,但我确信 vue 不是问题生成器。
<script lang="ts">
import { Component, Vue, Watch } from 'vue-property-decorator';
import * as brace from 'brace';
// const ace = brace
// OBS.: this one does not work
// require('./ace/clickhouse_highlight_rule');
// require('./ace/mode-clickhouse');
// OBS.: this one does not work too
import 'brace/mode/mode-clickhouse';
// ... more code
</script>
这是被破坏的代码部分
ace.define("ace/mode/clickhouse", ["require", "exports", "module", "ace/lib/oop", "ace/mode/text",
"ace/token_iterator",
"ace/mode/folding",
"ace/mode/clickhouse_FoldMode",
"ace/mode/clickhouse_highlight_rules"
], function (require, exports) {
"use strict";
let oop = require("../lib/oop");
let TextMode = require("./text").Mode;
// OBS.: ---> ERROR HERE
let ClickhouseHighlightRules = require("./clickhouse_highlight_rules").ClickhouseHighlightRules;
let ClickhouseFoldMode = require("./clickhouse_FoldMode").FoldMode;
let MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
let CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
let Mode = function () {
this.foldingRules = new ClickhouseFoldMode();
this.$outdent = new MatchingBraceOutdent();
this.$behaviour = new CstyleBehaviour();
this.HighlightRules = ClickhouseHighlightRules;
};
// more code here
解决方案
推荐阅读
- jquery - jQuery:在通过 AJAX 为 Chosen JS 添加新选项之前删除未选择的选项
- python - 如何使用pydub?
- junit5 - 具有 jupiter-vintage-engine 规则的 Junit 5 Launcher 不支持 JUnit4 @ParametrizedTest
- r - R:ggplot2 直方图填充闪避 - 防止部分重叠
- ssl - Kubernetes 1.14.2 HA Master NGINX 负载均衡器 log.go:172] http:来自 192.168.5.32:43148 的 TLS 握手错误:远程错误:tls:证书错误
- spring-data-jpa - Spring-Data-JPA - 如何删除 OneToMany 关系中的子记录
- bash - bash 和 zsh 中的便携式数组索引
- usb - 仅基于 DESCRIPTOR HID 报告访问 USB 设备数据
- pandas - 如何使用额外的百分位数自定义熊猫盒和胡须图?
- python - 生成带有日期的随机时间序列数据