2017-02-26 75 views
6

我使用ace-builds與webpack建立我的ACE編輯器應用程序。如何使用鏡像工作者與ACE編譯王牌編輯器

我需要使用自定義工作進行語法驗證。維基頁面here建議擴展名爲mirror的工作人員通過以下方式獲得。

var Mirror = require("ace/worker/mirror").Mirror;

但王牌建立似乎並沒有提供這名工人。如何使用ace-build創建用於語法驗證的自定義工作程序?

有關如何使用自定義語法驗證工作程序(用於自定義編程語言)來構建ace編輯器應用程序的任何其他建議,我們都非常感謝。 (我不能使用ace庫與require.js一起使用,因爲它使用require.toUrl,這是webpack不知道的。請參閱github issue

回答

1

ace-builds存儲庫僅提供構建的工作者,並且沒有源代碼王牌/工人/鏡像在一個單獨的文件。

您可以使用JSON工人來引導您的自定義之一,因爲它僅包含200的額外的代碼行https://github.com/ajaxorg/ace-builds/blob/master/src/worker-json.js#L1409-L1699

該文件重命名爲"<mymode>_worker.js",並在末尾添加工人的定義。

define("ace/mode/<mymode>_worker",["require","exports","module"], function(require, exports, module) { 
"use strict"; 

var oop = require("../lib/oop"); 
var Mirror = require("../worker/mirror").Mirror; 

... 

}); 
+0

但這也取決於鏡像工作者。 https://github.com/ajaxorg/ace-builds/blob/master/src/worker-json.js#L1663所以只有這200行不行不行? 我現在正在做的是從任何worker文件複製mirror worker的定義並需要該文件。 https://github.com/ajaxorg/ace-builds/blob/master/src/worker-json.js#L1347-L1407然後定義鏡像工作者。但我想避免將其他人的代碼直接放入我的回購:) –

+0

它包含鏡像的定義及其所有依賴關係https://github.com/ajaxorg/ace-builds/blob/v1.2.6/src /worker-json.js#L1347,除了該文件中突出顯示的200行之外的其他內容,都需要爲ace創建一個webWorker。所以我建議在工作人員 –

+0

的webpack配置文件中包含完整的worker-json.js文件啊。所以如果我需要worker-json文件,我可以避免需要[ace.js](https://github.com/ajaxorg/ace-builds/blob/v1.2.6/src/ace.js)文件嗎?我會試一試。謝謝。 –