运行 npm 用 sbt 安装
Running npm install with sbt
所以我有一个使用 sbt-js-engine
和 sbt-webpack
插件的 sbt
项目。
成功获取并解析npm包就好了。然后 webpack 将构建项目。
我已经在 package.json
中添加了一个 npm 安装脚本,
"scripts": {
"install": "bower install"
}
但是,我目前遇到的问题是,当我 运行 webpack(实习生使用 sbt-js-engine
)时,它 运行s npm update
而不是 npm install
.
这是我的 build.sbt
,
的摘录
lazy val common = project.in(file("common")).
enablePlugins(SbtWeb).
settings(
sourceDirectory in webpack := baseDirectory.value,
resourceManaged in webpack := (resourceManaged in webpack in root).value,
includeFilter in webpack := ("*.jsx" || "*.js" || "*.json") && new FileFilter {
@tailrec
override def accept(pathname: File): Boolean = {
if (pathname == null) false
else if (pathname.getName == "javascripts") true
else accept(pathname.getParentFile)
}
},
JsEngineKeys.engineType := JsEngineKeys.EngineType.Node
)
无论如何我可以 运行 npm install
作为 webpack 任务的依赖项而不是甚至之前?
您可以尝试这样的操作:
sourceDirectory in webpack := {
Process("/usr/local/bin/npm install", file("[path to working dir]")).!
baseDirectory.value
}
这意味着它将 运行 同时设置 webpack 设置。
所以我有一个使用 sbt-js-engine
和 sbt-webpack
插件的 sbt
项目。
成功获取并解析npm包就好了。然后 webpack 将构建项目。
我已经在 package.json
中添加了一个 npm 安装脚本,
"scripts": {
"install": "bower install"
}
但是,我目前遇到的问题是,当我 运行 webpack(实习生使用 sbt-js-engine
)时,它 运行s npm update
而不是 npm install
.
这是我的 build.sbt
,
lazy val common = project.in(file("common")).
enablePlugins(SbtWeb).
settings(
sourceDirectory in webpack := baseDirectory.value,
resourceManaged in webpack := (resourceManaged in webpack in root).value,
includeFilter in webpack := ("*.jsx" || "*.js" || "*.json") && new FileFilter {
@tailrec
override def accept(pathname: File): Boolean = {
if (pathname == null) false
else if (pathname.getName == "javascripts") true
else accept(pathname.getParentFile)
}
},
JsEngineKeys.engineType := JsEngineKeys.EngineType.Node
)
无论如何我可以 运行 npm install
作为 webpack 任务的依赖项而不是甚至之前?
您可以尝试这样的操作:
sourceDirectory in webpack := {
Process("/usr/local/bin/npm install", file("[path to working dir]")).!
baseDirectory.value
}
这意味着它将 运行 同时设置 webpack 设置。