====== 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'] }