2017-12-06 6 views
0

자바 웹 애플리케이션의 각도 4 UI는 아래 묶음에만 의존합니다. webapps 루트에서 아래 명령을 실행했습니다. 앱이 정상적으로 작동합니다. 나는 새로운 모범 사례를 알고 싶다.빌드시 프로젝트 내에 npm을 설치하기 위해 gradle에게 알려주는 방법은 무엇입니까?

npm install rxjs 
npm install @angular/[email protected] @angular/[email protected] @angular/[email protected] @angular/[email protected] @angular/[email protected] @angular/[email protected] @angular/[email protected] --save 
npm install [email protected] --save 
npm install [email protected] --save 

나는 아래와 같이 systemjs.config.js에서 설치 번들을 말하는 겁니다 :

paths: { 
     'npm:' : 'node_modules/' 
}, 
map: { 
     '@angular/core' : 'npm:@angular/core/bundles/core.umd.js' 
     . 
     . 
} 

조회 :

  1. 앱이 무거운 안 전체 node_modules에 포함되지 수 war
  2. 만약 내가 계속한다면대신 웹 어플리케이션의 프로젝트 루트에서 5,313,210, 어떻게 난 그냥 그 번들이 아니라 우리가 글로벌 node_modules를 사용할 수있는 경우 npm install @angular/cli
  3. 을 실행하는 동안 다운로드됩니다 거대한 파일 스택을 원하는 systemjs.config.js
  4. 에서 참조 할, 그 참조하는 방법 systemjs.config.js에서 Gradle을가 @Oliver 찰스 워드로
+0

Gradle을에 빌드 의존성을 추가합니다. 예를 들어 시도해 볼 수 있습니다. [gradle-node-plugin] (https://github.com/srs/gradle-node-plugin)이지만 약간의 제한이 있습니다. 내 경험에 의하면. –

답변

0

을 구축하면서 필요한 번들을 다운로드 내가 build.gradle에 포함해야하는지 마지막으로

  • , (나는 다른 버전을 사용하여 서버에서 다른 응용 프로그램을 방해하지 프로젝트 내에서 유지 선호) 고 말했다. Gradle에는 한계가 있지만 사용자 정의 gradle 작업을 만들 수 있습니다.

    예 :

    task npmInstall(type: Exec) { 
        workingDir 'src/main/webapp' 
        commandLine 'npm', 'install' 
    } 
    

    은 JS 생태계의 기본 이해가되지 않는 war 빌드 단계

    war { 
        dependsOn npmBuild 
    } 
    
  • +0

    이 문제는 매번'npm install '을 실행할 것입니다. 그래서 이상적으로 작업이 언제 최신인지를 나타내는 방법을 찾고 싶습니다. –

    +0

    맞습니다.하지만 종속성은 한 번 다운로드되므로 작업이 처음 시간을 소비 할 때만 발생합니다. –