4

该项目正在构建一个 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 会更好:-)

4

0 回答 0