node.js - 使用intellij idea ce在kotlin中编写nodejs应用程序

标签 node.js gradle intellij-idea kotlin kotlin-js

我正在尝试使用 IntelliJ IDEA CE 开发环境使用 Kotlin 1.3.11 开发 Nodejs 应用程序。不幸的是,我在运行应用程序方面没有取得任何进展。为了确保一切设置正确,我想打印出一个简单的“hello world”。

我搜索了有关该主题的文章或教程,但没有找到太多关于将这三者结合在一起的文章或教程(Kotlin、IntelliJ、Nodejs)。我发现的最具体的是: a medium postanother post .

据我(相信)所知,有三个主要步骤:

  • 通过 npm 调用初始化 Node 应用程序,并使用 npm 安装 kotlin 和expressjs 等 Node 依赖项
  • 创建 build.gradle 来定义其他依赖项和任务
  • 创建 IntelliJ IDEA 项目

我尝试以不同的顺序执行这些步骤,但从未出现过正在运行的应用程序。我还搜索了 IntelliJ 的文档,但 Nodejs 集成不是免费社区版的功能。也没有描述如何让 Kotlin 和 Nodejs 一起工作。

这里有人成功地尝试过这样做(或者失败了并且知道为什么它不起作用)?我是否必须使用其他 IDE 或编写自己的构建工具/工具链?

真诚的J。

最佳答案

我还没有在 IDEA CE 中这样做过,但理论上,这应该可行。

前提条件:你已经安装了node,可以执行gradle任务

这是最低配置,还有综合配置。如果有兴趣请添加评论

第 1 步:
创建一个新的 Kotlin/JS 项目(使用 gradle)并确保您的 gradle 构建文件如下所示

group 'node-example'
version '1.0-SNAPSHOT'

buildscript {
  ext.kotlin_version = '1.3.11'
    repositories {
      mavenCentral()
    }
  dependencies {
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
  }
}

apply plugin: 'kotlin2js'

repositories {
  mavenCentral()
}

dependencies {
  compile "org.jetbrains.kotlin:kotlin-stdlib-js:$kotlin_version"
}

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

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

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

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

npmRun.dependsOn(build)

第 2 步:
在第 1 步中同步 build.gradle 后,运行 gradle 任务 npmInitnpmInstall

./gradlew :npmInit
./graldew :npmInstall

第 3 步:
src/main/kotlin 中创建 kotlin 文件 (index.kt/main.kt/whatever.kt) > 并测试下面的代码

external fun require(module:String):dynamic

fun main(args: Array<String>) {
    println("Hello JavaScript!")

    val express = require("express")
    val app = express()

    app.get("/", { req, res ->
        res.type("text/plain")
        res.send("Kotlin/JS is kool")
    })

    app.listen(3000, {
        println("Listening on port 3000")
    })
}

第 4 步:RTFA - 运行应用
运行gradle任务npmRun

./gradlew :npmRun

希望有帮助

注意:
1. 这个模板是从你上面问的中型帖子中拉出来的,并做了一些修改
2. 请记住使用 sudo 运行 gradle 任务(如果您使用的是 Linux)

关于node.js - 使用intellij idea ce在kotlin中编写nodejs应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54951483/

相关文章:

javascript - CasperJS连续运行

intellij-idea - IntelliJ 2016.3.4 中突然出现 java.lang.NoClassDefFoundError

android - 在 Gradle 中设置 Ivy 本地存储库

java - SonarLint V3 : Fields in a "Serializable" class should either be transient or serializable for List interface

eclipse - 从控制台“退出”(ctrl+c)进程 - Eclipse 与 Intellij

javascript - 如何在 Node 中正确提交 XML post 请求?

javascript - 从目录读取文件时出现错误,发送后无法获取 header ?

javascript - 如何在node js中查找字符串中的图像标签

android - 根据Android内置类型运行特定的Gradle任务

intellij-idea - Intellij 无法识别 javax.mail 导入,但项目构建正常