使用 intellij idea ce 在 kotlin 中编写 nodejs 应用程序
writing nodejs applications in kotlin with intellij idea ce
我正在尝试使用 IntelliJ IDEA CE 开发环境使用 Kotlin 1.3.11 开发 Nodejs 应用程序。不幸的是,我在 运行 申请方面没有取得任何进展。为确保一切设置正确,我想打印一个简单的 "hello world"。
我搜索了有关该主题的文章或教程,但没有找到太多关于将这三者(Kotlin、IntelliJ、Nodejs)结合在一起的信息。我发现的最具体的是:
a medium post and another post.
据我(相信)所知,主要分为三个步骤:
- 调用通过 npm 初始化节点应用程序并使用 npm 安装节点依赖项,如 kotlin 和 expressjs
- 正在创建一个 build.gradle 来定义其他依赖项和任务
- 创建一个 IntelliJ IDE一个项目
我尝试以不同的顺序执行这些步骤,但我从未进入 运行 应用程序。我还搜索了 IntelliJ 的文档,但 Nodejs 集成不是免费社区版的功能。也没有描述如何让 Kotlin 和 Nodejs 一起工作。
这里有没有人成功地尝试过这样做(或者失败了并且知道为什么它不起作用)?我是否必须使用另一个 IDE 或编写自己的构建 tools/toolchain?
此致 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 任务 npmInit
和 npmInstall
./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")
})
}
第四步:RTFA - 运行 应用程序
运行 gradle 任务 npm运行
./gradlew :npmRun
希望对您有所帮助
注:
1. 这个模板是从你上面问的post中拉出来的,稍微修改一下
2. 请记住 运行 您的 gradle 任务使用 sudo
(如果您使用 linux)
编辑:或者,您可以克隆 https://github.com/miquelbeltran/kotlin-node.js 并按照自述文件中的说明进行操作。
我通过将 gradle build
替换为以下内容(因为 post 于 2017 年发布(!)并且需要更旧版本的Gradle):
像这样注释掉build.gradle
的全部内容:
/*group 'node-example'
...
compileKotlin2Js.kotlinOptions {
moduleKind = "commonjs"
outputFile = "node/index.js"
}*/
运行 命令提示符中的此命令:(3.4.1 是 Gradle 的最新版本,就在 Medium post 发布之前。)
gradle wrapper --gradle-version=3.4.1
取消注释 build.gradle
:
group 'node-example'
...
compileKotlin2Js.kotlinOptions {
moduleKind = "commonjs"
outputFile = "node/index.js"
}
运行 这个命令代替 gradle build
:
gradlew build
最后 运行 post 中的这个命令:(在 Whosebug 上写这个答案时,Node.js 没有降级,当前的 LTS 版本 10.16.0 有效完美。)
node node/index.js
我正在尝试使用 IntelliJ IDEA CE 开发环境使用 Kotlin 1.3.11 开发 Nodejs 应用程序。不幸的是,我在 运行 申请方面没有取得任何进展。为确保一切设置正确,我想打印一个简单的 "hello world"。
我搜索了有关该主题的文章或教程,但没有找到太多关于将这三者(Kotlin、IntelliJ、Nodejs)结合在一起的信息。我发现的最具体的是: a medium post and another post.
据我(相信)所知,主要分为三个步骤:
- 调用通过 npm 初始化节点应用程序并使用 npm 安装节点依赖项,如 kotlin 和 expressjs
- 正在创建一个 build.gradle 来定义其他依赖项和任务
- 创建一个 IntelliJ IDE一个项目
我尝试以不同的顺序执行这些步骤,但我从未进入 运行 应用程序。我还搜索了 IntelliJ 的文档,但 Nodejs 集成不是免费社区版的功能。也没有描述如何让 Kotlin 和 Nodejs 一起工作。
这里有没有人成功地尝试过这样做(或者失败了并且知道为什么它不起作用)?我是否必须使用另一个 IDE 或编写自己的构建 tools/toolchain?
此致 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 任务 npmInit
和 npmInstall
./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")
})
}
第四步:RTFA - 运行 应用程序
运行 gradle 任务 npm运行
./gradlew :npmRun
希望对您有所帮助
注:
1. 这个模板是从你上面问的post中拉出来的,稍微修改一下
2. 请记住 运行 您的 gradle 任务使用 sudo
(如果您使用 linux)
编辑:或者,您可以克隆 https://github.com/miquelbeltran/kotlin-node.js 并按照自述文件中的说明进行操作。
我通过将 gradle build
替换为以下内容(因为 post 于 2017 年发布(!)并且需要更旧版本的Gradle):
像这样注释掉build.gradle
的全部内容:
/*group 'node-example'
...
compileKotlin2Js.kotlinOptions {
moduleKind = "commonjs"
outputFile = "node/index.js"
}*/
运行 命令提示符中的此命令:(3.4.1 是 Gradle 的最新版本,就在 Medium post 发布之前。)
gradle wrapper --gradle-version=3.4.1
取消注释 build.gradle
:
group 'node-example'
...
compileKotlin2Js.kotlinOptions {
moduleKind = "commonjs"
outputFile = "node/index.js"
}
运行 这个命令代替 gradle build
:
gradlew build
最后 运行 post 中的这个命令:(在 Whosebug 上写这个答案时,Node.js 没有降级,当前的 LTS 版本 10.16.0 有效完美。)
node node/index.js