该项目正在构建一个 Angular 应用程序。
我需要应用程序构建来使用另一个本地项目的结果,该项目是一个 javascript 库。
Gradle 用于在 com.github.node-gradle.node 节点插件的帮助下构建这两个项目。
项目结构简单
root
- Project App
- Project Library
其中 App 取决于 Library 的输出。
更准确地说,应用程序需要在项目库上输出“npm pack”。
在 App 项目中,我声明了对库项目的本地 npm 依赖项,这是 npm 包的结果。( .tgz 文件)
"dependencies": {
"library": "file:../library/build/library-0.0.1.tgz"
}
如何将库项目的结果声明为构建输出并将其声明为 App 项目的依赖项输入?
使用 java-library 插件将是这样的:
dependencies {
api(project(":library"))
}
目标是 gradle 将首先构建 Library 项目,然后再构建 App 项目。如果他可以在请求构建 App 时检查库源代码是否已更改以在其上触发构建,那就更好了。
两个项目的构建都是这样完成的:
tasks{
register<com.moowork.gradle.node.npm.NpmTask>("build") {
dependsOn("npmInstall")
setArgs(setOf("run-script", "build"))
}
}
package.json 中库项目的构建脚本是
"scripts": {
"build": "ng-packagr -p ng-package.json && cd ./build && npm pack ../dist"
}
我已经看过很多关于如何使用 java 插件的文档,但我没有找到任何非 java 项目的好例子。
任何帮助将不胜感激,使用 kotlin dsl 会更好:-)