====== Gradle node.js plugin ======
* [[:gradle|Gradle]] [[:node.js|node.js]] plugin
* https://github.com/node-gradle/gradle-node-plugin
===== node.js instance =====
* node.js, yarn, npm 인스턴스는 프로젝트 별로 설치할 수도 있고, 현재 시스템에 전역 설치된 인스턴스를 사용할 수도 있다. 이는 gradle 설정에 따른다.
* 특히 ''download = false'' 이면 항상 global instance를 사용한다. 따라서 global instance의 경로 설정에 주의해야 한다.
===== 설정 =====
plugins {
id "com.github.node-gradle.node" version "3.3.0"
}
node {
version = "16.14.0" // node.js 버전
download = true // 프로젝트 디렉토리에 node.js 다운로드해서 모든 개발자가 일관성있는 버전 사용.
}
===== 실행 =====
* 기본
# node.js local 설치
./gradlew nodeSetup
# npm package.json 패키지 목록 설치
./gradlew npmInstall
* ''npm/yarn'' 등의 명령은 ''npm_XXX'', ''yarn_XXX'' 형태로 실행가능.
# 명령의 인자를 가변으로 줄 수 있는 방법은 없어보임. (3.3)
./gradlew npm_run
./gradlew npm_update
./gradlew npm_list
* 명령 인자는 ''build.gradle''에서 고정값으로 지정
npm_update {
args = ['--production', '--loglevel', 'warn']
}
===== node task =====
* ''node'' 명령으로 js 파일 실행하기
task myScript(type: NodeTask) {
script = file('src/scripts/my.js')
args = ['arg1', 'arg2']
}
===== npm task =====
* ''NpmTask''를 상속하여 태스크 생성.
* 그 외에도 ''YarnTask'', ''NpxTask''
task npmServe(type: NpmTask) {
description = "서버 띄우기"
dependsOn(npmBuild)
args = ['run', 'serve']
}