node.js - Kotlin多平台node.js项目由于 “Error: Cannot find module '而失败…'”

标签 node.js gradle kotlin kotlin-multiplatform kotlin-js

我建立了Kotlin跨平台库,并将其发布到Bintray。当尝试将其包含在示例node.js应用程序中时,它将能够找到依赖项,但是编译将失败,并带有以下异常:

internal/modules/cjs/loader.js:800
    throw err;
    ^

Error: Cannot find module 'storyblok-mp-sdk'
Require stack:
- /Users/.../storyblok-mp-SDK/nodejsapp/node/index.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:797:15)
    at Function.Module._load (internal/modules/cjs/loader.js:690:27)
    at Module.require (internal/modules/cjs/loader.js:852:19)
    at require (internal/modules/cjs/helpers.js:74:18)
    at /Users/.../storyblok-mp-SDK/nodejsapp/node/index.js:5:48
    at Object.<anonymous> (/Users/.../storyblok-mp-SDK/nodejsapp/node/index.js:18:2)
    at Module._compile (internal/modules/cjs/loader.js:959:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)
    at Module.load (internal/modules/cjs/loader.js:815:32)
    at Function.Module._load (internal/modules/cjs/loader.js:727:14) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/Users/.../storyblok-mp-SDK/nodejsapp/node/index.js'
  ]
}

看起来依赖项本身已正确下载,并且在编译过程中也得到了处理(因为它在js目录中的build目录中可用)。但是,即使事情似乎已经解决,问题仍然存在。

整个示例项目已发布在此分支:https://github.com/mikepenz/storyblok-mp-SDK/tree/feature/nodejssample/nodejsapp

为了使事情简单,我尝试使build.gradle尽可能简单
buildscript {
   ...
}

apply plugin: 'kotlin2js'
apply plugin: 'kotlin-dce-js'

repositories { ... }

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-js:$kotlin_version"
    implementation "com.mikepenz:storyblok-mp-sdk-js:0.0.3"

    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.3"
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core-js:1.3.3"
}

compileKotlin2Js.kotlinOptions {
    moduleKind = "umd"
    outputFile = "node/index.js"
}

task npmInit(type: Exec) {
    commandLine "npm", "init", "-y"
}

task npmInstall(type: Exec) {
    commandLine "npm", "install", "kotlin", "kotlinx-coroutines-core", "express", "--save"
}

task npmRun(type: Exec) {
    commandLine "node", "node/index.js"
}

npmRun.dependsOn(build)

我能找到的所有资源对于如何正确配置项目似乎都很含糊。删除依赖关系本身,而不从依赖关系中引用类似乎可行。所以我可以说一般的项目设置应该可以

最佳答案

我无法重现该问题。您使用什么版本的Gradle?
我已经在Mac上尝试使用6.0.1。
另外,您可以在问题跟踪器中创建问题-https://youtrack.jetbrains.com/issues/KT

关于node.js - Kotlin多平台node.js项目由于 “Error: Cannot find module '而失败…'”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59492909/

相关文章:

android - 在 Android 的 ListView Kotlin 中点击

node.js - 将 node.js 移动到 docker 容器,收到无法文件模块错误

javascript - 尝试将数组添加到 firebase 但遇到问题,因为 Nodejs 没有异步性质

javascript - (object Object) 从 Node 中的 JSON 请求返回

java - Gradle Spring Boot 自定义配置

android - 在自定义任务中执行android构建任务

eclipse - Eclipse无法将项目识别为Gradle项目

java - 无法在此方法中找到对返回值的引用

android - 每当我尝试添加新的字符串资源时,Strings.xml 都会出现翻译错误

node.js - 根据请求从缓冲区上传图像