Javascript 与jQuery插件一起包含的scalajs绑定器
我正在用这个。它一直在工作,直到我决定从Javascript 与jQuery插件一起包含的scalajs绑定器,javascript,jquery,webpack,scala.js,scalajs-bundler,Javascript,Jquery,Webpack,Scala.js,Scalajs Bundler,我正在用这个。它一直在工作,直到我决定从jsDependencies改为使用Webpack。Web包生成的自定义Javascript包不包含模式对话框脚本。这可能是因为这个模式对话框库与网页包不兼容,但我不知道,因为我不熟悉网页包。我如何使我的项目生成最终的包以包含模态对话框?请告知。谢谢 查看模式对话框脚本,我想我只需要在加载时执行模式对话框脚本,它将自身附加到$。我创建的jqueryfacade应该保持不变。不幸的是,我不知道如何使用Scala.js实现这一点 我已经包含了我的build.s
jsDependencies
改为使用Webpack。Web包生成的自定义Javascript包不包含模式对话框脚本。这可能是因为这个模式对话框库与网页包不兼容,但我不知道,因为我不熟悉网页包。我如何使我的项目生成最终的包以包含模态对话框?请告知。谢谢
查看模式对话框脚本,我想我只需要在加载时执行模式对话框脚本,它将自身附加到$
。我创建的jqueryfacade应该保持不变。不幸的是,我不知道如何使用Scala.js实现这一点
我已经包含了我的build.sbt的一部分
lazy val server = (project in file("server")).settings(commonSettings).settings(
scalaJSProjects := Seq(client),
pipelineStages in Assets := Seq(scalaJSPipeline),
compile in Compile := ((compile in Compile) dependsOn scalaJSPipeline).value,
libraryDependencies ++= Seq(
"com.typesafe.akka" %% "akka-http" % "10.1.1",
"com.typesafe.akka" %% "akka-stream" % "2.5.11",
"com.vmunier" %% "scalajs-scripts" % "1.1.2"
),
WebKeys.packagePrefix in Assets := "public/",
managedClasspath in Runtime += (packageBin in Assets).value)
.enablePlugins(SbtWeb, JavaAppPackaging, WebScalaJSBundlerPlugin)
.dependsOn(sharedJvm)
lazy val client = (project in file("client")).settings(commonSettings).settings(
libraryDependencies ++= Seq(
"org.scala-js" %%% "scalajs-dom" % "0.9.5",
"org.querki" %%% "jquery-facade" % "1.2",
"org.querki" %%% "querki-jsext" % "0.8",
"com.lihaoyi" %%% "upickle" % "0.6.5",
"com.lihaoyi" %%% "utest" % "0.6.3" % "test"),
scalaJSUseMainModuleInitializer := true,
skip in packageJSDependencies := false,
npmDevDependencies in Compile ++= Seq(
"webpack-merge" -> "4.1.2",
"imports-loader" -> "0.8.0",
"expose-loader" -> "0.7.5"),
npmDependencies in Compile ++= Seq(
"jquery" -> "2.2.1",
"jquery-modal" -> "0.9.1"))
.enablePlugins(ScalaJSBundlerPlugin, ScalaJSWeb)
.dependsOn(sharedJs)
更新1
在我使用自定义的webpack.config.js
公开了jQuery
之后,jQuery插件设法查看$
,如下所示。但是,我必须使用
将插件包含在HTML页面中。如何在ScalaJS中包含和执行插件,并避免HTML页面中的
标记
const webpack = require('webpack')
module.exports = {
module: {
rules: [
// any other rules
{
// Exposes jQuery for use outside Webpack build
test: require.resolve('jquery'),
use: [{
loader: 'expose-loader',
options: 'jQuery'
},{
loader: 'expose-loader',
options: '$'
}]
}
]
},
plugins: [
// Provides jQuery for other JS bundled with Webpack
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery'
})
]
}
更新2
在几个月的闲置之后,几天前我又拿起了它。最后,我通过scalajs bundler与Webpack一起使用
单击以获取解决方案。我认为这个问题应该对您有所帮助:谢谢。我重新阅读了你建议的链接,并做了一些更改。模态对话框显示我是否在HTML页面中包括jQuery插件脚本,即
。我尝试使用ScalaJS代码级别加载jquery.modal.min.js,但失败。有什么建议吗?