2016-05-18 53 views
1

我使用haxe-js-kit的一些externs,並且我的目標是客戶端JS。按照該haxe-js-kit指示,我包括在我build.hxml文件中的以下行:使用externs並定位JavaScript時,如何強制Haxe編譯器使用require語句?

--macro npm.Package.export("package.json") 

現在,當我編譯,生成package.json文件,該文件確定需要安裝的依賴關係。那麼我運行:

npm install 

而這些依賴關係安裝在node_modules/。現在我想將我的應用程序的內置JS(由Haxe編譯器生成)與我剛剛下載的JS庫一起打包到node_modules/中。通常,我會使用類似webpack這樣的工具,但webpack依賴於CommonJS或AMD依賴聲明。 Haxe編譯器不會在編譯的JS中插入require語句 - 它假定這些依賴關係將全局可用。

Haxe 確實提供了一種機制,用於將CommonJS require語句放入編譯後的JS:@:jsRequire("fs")。但是extern的作者負責將這個註釋添加到他們的extern類中,並且it doesn't lookhaxe-js-kit這樣做。

作爲externs的客戶端,有沒有辦法告訴Haxe編譯器在輸出JS中包含require語句,所以我可以使用像webpack這樣的工具將我的依賴關係打包到單個文件中?

回答

1

也許你可以自己添加元數據與編譯器參數:

--macro addMetadata('@:jsRequire("fs")', 'path.to.TheExtern') 

因此,即使你沒有自己的源,你可以裝飾與HAXE元數據類。

或者,你可以在haxe-js-kit repo上提出問題,問它爲什麼沒有。

+0

感謝和問題已提交。 –