diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/npm-dependencies/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/npm-dependencies/build.gradle.kts index 8baea33e4f5..a0e45e16689 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/npm-dependencies/build.gradle.kts +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/npm-dependencies/build.gradle.kts @@ -18,6 +18,7 @@ kotlin.sourceSets { implementation(npm("@yworks/optimizer", "1.0.6")) implementation(npm("file-dependency", projectDir.resolve("file-dependency"))) implementation(npm(projectDir.resolve("file-dependency-2"))) + implementation(npm(projectDir.resolve("file-dependency-3"))) } } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/npm-dependencies/file-dependency-3/index.js b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/npm-dependencies/file-dependency-3/index.js new file mode 100644 index 00000000000..c6dab39e545 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/npm-dependencies/file-dependency-3/index.js @@ -0,0 +1,5 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/DefaultKotlinDependencyHandler.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/DefaultKotlinDependencyHandler.kt index a00f8f35c8f..b76fa04b070 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/DefaultKotlinDependencyHandler.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/DefaultKotlinDependencyHandler.kt @@ -89,11 +89,15 @@ class DefaultKotlinDependencyHandler( version = version ) - override fun npm(name: String, directory: File): NpmDependency = - npm( + override fun npm(name: String, directory: File): NpmDependency { + check(directory.isDirectory) { + "Dependency on local path should point on directory but $directory found" + } + return npm( name = name, version = fileVersion(directory) ) + } override fun npm(directory: File): NpmDependency = npm( diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmDependency.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmDependency.kt index e78af5e0c91..81964901841 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmDependency.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmDependency.kt @@ -133,11 +133,11 @@ internal fun fileVersion(directory: File): String = internal fun moduleName(directory: File): String { val packageJson = directory.resolve(PACKAGE_JSON) - check(packageJson.isFile) { - "There is no NPM module in $directory. Declare valid $PACKAGE_JSON in it." + if (packageJson.isFile) { + return fromSrcPackageJson(packageJson)!!.name } - return fromSrcPackageJson(packageJson)!!.name + return directory.name } const val FILE_VERSION_PREFIX = "file:" \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmDependencyExtension.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmDependencyExtension.kt index 54214dc40b0..1f4e7caf902 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmDependencyExtension.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmDependencyExtension.kt @@ -30,11 +30,15 @@ fun Project.addNpmDependencyExtension() { version = version ) - override operator fun invoke(name: String, directory: File): NpmDependency = - invoke( + override operator fun invoke(name: String, directory: File): NpmDependency { + check(directory.isDirectory) { + "Dependency on local path should point on directory but $directory found" + } + return invoke( name = name, version = fileVersion(directory) ) + } override operator fun invoke(directory: File): NpmDependency = invoke(