問題:想回到()=>要求(路徑)從宏觀如何從宏scala.js返回需要調用
def gql(args: js.Any*): js.Function0[js.Any] = macro rqlMacroImpl
//impl
val generatedFilePath = ...
c.Expr[js.Function0[js.Any]](q"""
{
import scala.scalajs.js
import scala.scalajs.js.annotation.JSImport
val func:js.Function0[js.Any] =() => require($generatedFilePath)// I want to return require(...)
func
}
""")
所以嘗試遠
//impl
val generatedFilePath = ...
c.Expr[js.Function0[js.Any]](q"""
{
import scala.scalajs.js
import scala.scalajs.js.annotation.JSImport
@js.native
@JSImport($generatedFilePath,JSImport.Default)
object GQlImport extends js.Object
val func:js.Function0[js.Any] =() => GQlImport
func
}
""")
失敗Local native object/classes not allowed
解決方法:
使用js.Dynamic.global.require(path)
和SBT任務取代$g.require(
到require(
任何更好的選擇..?