plugins { id "com.moowork.node" version "1.2.0" } node { download = true; } ext { bundlejs = "src/app/bundle.js" bundlets = "src/app/bundle.d.ts" } //task installAngularCli(type: NpmTask) { // args = ['install', '@angular/cli'] //} //npm_install.dependsOn(installAngularCli); task printProtos { doLast { println getProtoFiles().join(" ") } } printProtos.description = "List all the .proto files we can find." def getProtoFiles() { def protoFiles = [] rootProject.subprojects { proj -> if (proj.hasProperty('sourceSets') && proj.sourceSets.hasProperty('main') && proj.sourceSets.main.hasProperty('proto')) { protoFiles = protoFiles + proj.sourceSets.main.proto.getFiles(); } } return protoFiles; } task generateProtobufBundle(type: NpmTask) { doFirst { // We need do this in doFirst since getProtoFiles won't find all subprojects // until after configuration is complete def protoFiles = getProtoFiles() generateProtobufBundle.args = ['run', 'protoc', '--' ] + protoFiles; } dependsOn npm_install } generateProtobufBundle.description = "Generate the bundle.js/bundle.d.ts files containing compiled protobufs" npm_run_build.dependsOn(npm_install) npm_run_build.dependsOn(generateProtobufBundle) npm_start.dependsOn(generateProtobufBundle) // It would be nice if this worked, but it seems to get stuck: //npm_start.dependsOn(project(':bulletin-board-server').jettyStart);