blob: d4bd86ca566c5ce5d88bcef432cc3aaba6ded2c0 [file] [log] [blame]
Roman Elizarov1f74a2d2018-06-29 19:19:45 +03001/*
Aurimas Liutikase64dad72021-05-12 21:56:16 +00002 * Copyright 2016-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
Roman Elizarov1f74a2d2018-06-29 19:19:45 +03003 */
Roman Elizarov94fb2a32018-03-05 17:32:59 +03004
5apply plugin: 'com.moowork.node'
6
7node {
8 version = "$node_version"
9 npmVersion = "$npm_version"
10 download = true
Roman Elizarovf0fc7702018-03-06 12:45:08 +030011 nodeModulesDir = file(buildDir)
Roman Elizarov94fb2a32018-03-05 17:32:59 +030012}
Roman Elizarovf0fc7702018-03-06 12:45:08 +030013
14// Configures testing for JS modules
15
16task prepareNodePackage(type: Copy) {
Vsevolod Tolstopyatove50a0fa2019-01-28 11:34:24 +030017 from("npm") {
Vsevolod Tolstopyatov6e810832019-04-26 13:16:56 +030018 include 'package.json'
Roman Elizarov504c8762019-04-24 12:04:02 +030019 // Postpone expansion of package.json until we configure version property in build.gradle
20 def copySpec = it
Vsevolod Tolstopyatov390c7222019-04-23 18:42:11 +030021 afterEvaluate {
Roman Elizarov504c8762019-04-24 12:04:02 +030022 copySpec.expand(project.properties + [kotlinDependency: ""])
Vsevolod Tolstopyatov390c7222019-04-23 18:42:11 +030023 }
Vsevolod Tolstopyatove50a0fa2019-01-28 11:34:24 +030024 }
Vsevolod Tolstopyatov6e810832019-04-26 13:16:56 +030025 from("npm") {
26 exclude 'package.json'
27 }
Vsevolod Tolstopyatove50a0fa2019-01-28 11:34:24 +030028 into "$node.nodeModulesDir"
Roman Elizarovf0fc7702018-03-06 12:45:08 +030029}
30
31npmInstall.dependsOn prepareNodePackage
32
Vsevolod Tolstopyatov4ddfc912018-07-12 18:36:02 +030033// Workaround the problem with Node downloading
34repositories.whenObjectAdded {
35 if (it instanceof IvyArtifactRepository) {
36 metadataSources {
37 artifact()
38 }
39 }
40}