无法使用npm在sbt-web中处理前端依赖

12
我正在尝试使用sbt-web,特别是sbt-js-engine来使用npm解决我的依赖问题,而不是使用webjars。
我的问题是,在web-stage任务期间,依赖项未被复制到target/web/public/main/lib文件夹中,这与使用webjar的情况不同。
我使用了sbt-js-engine的示例项目进行测试。使用此项目,我希望从package.json文件中找到console-browserify依赖项,并将其放置在target/web/public/main/lib文件夹中,但实际上没有。

enter image description here

也许我完全误解了什么?

抱歉,我无法帮助你,因为我甚至无法达到你所在的阶段。你是如何使node_modules文件夹出现的?我必须手动运行sbt web-assets:jseNpmNodeModules来获取npm依赖项。 - tobik
我还必须手动运行sbt web-assets:jseNpmNodeModules - ndeverge
嗨,playframework 似乎存在一个问题(https://github.com/playframework/playframework/issues/3565)。也许尝试升级到 Play 2.4.2 看看是否解决了。 - Julien Boulay
@JulienBoulay 谢谢伙计!我会看一下 :-) - ndeverge
1个回答

4

我自己在使用npm拉取一些测试依赖时也遇到了类似的问题。经过几个小时的搜索,最终我只能在我的build.sbt中编写一个任务来手动移动目录(可能不是最好的解决方案,但是可以解决问题)。

lazy val copy_node_modules = taskKey[Unit]("Copys the node_module to the test target dir")

copy_node_modules := {
  val node_modules = new File("node_modules")
  val target = new File("target/web/public/main/public/lib/")
  IO.copyDirectory(node_modules,target,true, true)
}

addCommandAlias("get_npm_deps", ";web-assets:jseNpmNodeModules;copy_node_modules")

然后你可以使用 "get_npm_deps" 命令来获取基于npm的依赖项。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接