diff --git a/superset-frontend/src/components/AsyncAceEditor/index.tsx b/superset-frontend/src/components/AsyncAceEditor/index.tsx index 2e499e150bb4..1b755f50ef3d 100644 --- a/superset-frontend/src/components/AsyncAceEditor/index.tsx +++ b/superset-frontend/src/components/AsyncAceEditor/index.tsx @@ -24,11 +24,15 @@ import { TextMode as OrigTextMode, } from 'brace'; import AceEditor, { IAceEditorProps } from 'react-ace'; +import { config } from 'ace-builds'; import { acequire } from 'ace-builds/src-noconflict/ace'; import AsyncEsmComponent, { PlaceholderProps, } from 'src/components/AsyncEsmComponent'; import useEffectEvent from 'src/hooks/useEffectEvent'; +import cssWorkerUrl from 'ace-builds/src-noconflict/worker-css'; + +config.setModuleUrl('ace/mode/css_worker', cssWorkerUrl); export interface AceCompleterKeywordData { name: string; diff --git a/superset-frontend/src/types/ace-builds.ts b/superset-frontend/src/types/ace-builds.ts new file mode 100644 index 000000000000..0c34a854034e --- /dev/null +++ b/superset-frontend/src/types/ace-builds.ts @@ -0,0 +1,19 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +declare module 'ace-builds/src-noconflict/worker-css'; diff --git a/superset-frontend/webpack.config.js b/superset-frontend/webpack.config.js index 36321e8f9bdf..d531a01cc949 100644 --- a/superset-frontend/webpack.config.js +++ b/superset-frontend/webpack.config.js @@ -345,6 +345,10 @@ const config = { ], use: [babelLoader], }, + { + test: /ace-builds.*\/worker-.*$/, + type: 'asset/resource', + }, // react-hot-loader use "ProxyFacade", which is a wrapper for react Component // see https://github.com/gaearon/react-hot-loader/issues/1311 // TODO: refactor recurseReactClone