| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| configure([project(":solr:packaging"), project(":solr:solr-ref-guide"), project(":solr:webapp")]) { |
| apply plugin: "com.github.node-gradle.node" |
| |
| def npmRegistry = "${ -> propertyOrEnvOrDefault("solr.npm.registry", "SOLR_NPM_REGISTRY", '') }" |
| if (!npmRegistry.isEmpty()) { |
| tasks.npmSetup { |
| args.addAll(['--registry', npmRegistry]) |
| } |
| |
| afterEvaluate { |
| tasks.withType(NpmTask).each { npmTask -> |
| npmTask.environment.put('NPM_CONFIG_REGISTRY', npmRegistry) |
| } |
| tasks.withType(NpxTask).each { npxTask -> |
| npxTask.environment.put('NPM_CONFIG_REGISTRY', npmRegistry) |
| } |
| } |
| } |
| |
| ext { |
| rootNodeDir = "$rootDir/.gradle/node" |
| nodeProjectDir = file("$rootNodeDir/$project.name") |
| } |
| |
| node { |
| download = true |
| version = "16.20.2" // LTS |
| |
| def nodeDistUrl = "${ -> propertyOrEnvOrDefault("solr.node.distUrl", "SOLR_NODE_DIST_URL", '') }" |
| if (!nodeDistUrl.isEmpty()) { |
| distBaseUrl = nodeDistUrl |
| } |
| |
| // The directory where Node.js is unpacked (when download is true) |
| workDir = file("${project.ext.rootNodeDir}/nodejs") |
| |
| // The directory where npm is installed (when a specific version is defined) |
| npmWorkDir = file("${project.ext.rootNodeDir}/npm") |
| |
| // The Node.js project directory location |
| // This is where the package.json file and node_modules directory are located |
| // By default it is at the root of the current project |
| nodeProjectDir = project.ext.nodeProjectDir |
| } |
| } |