2013-05-17 4 views
4

play 프레임 워크에서 require.js를 사용하고 있습니다. 조정 후 Build.scala 파일을 제작하면 축소 된 js 파일이 생성되지만 연결에 대한 정보를 단일 js 파일의 모든 require.js 모듈에서 찾을 수 없습니다.재생 프레임 워크 JS 연결

아무도 빛을 비출 수 없거나 올바른 방향으로 나를 안내 할 수 있으면 감사하겠습니다.

답변

1

"webjars"(http://www.webjars.org)를 알고 계십니까? Webjars는 jar 파일의 Javascript 및 CSS 라이브러리/프레임 워크를 제공하는 프레임 워크입니다. 파일을 빌드 할 때 종속성으로 추가 할 수 있습니다. 그들은 또한 도우미 기능을 제공하는데, 그 중 하나는 requirejs-stuff를 하나의 파일로 "컴파일"(연결 및 축소)합니다.

문서보기 : http://www.webjars.org/documentation 몇 가지 간단한 예를 제공합니다.

+1

, webjars가 인 2.3.x를 대상으로 보인다 (? 이상) –

+1

내가 기억하는 최초의 버전은 2.0.1 플레이입니다. 그들은 예제 프로젝트를 만들었습니다 (https://github.com/webjars/sample-play2에서 이용 가능합니다). 또한 2.1.0의 예가 있습니다 (이전 버전의 프로젝트 참조 : https://github.com/webjars/sample-play2/tree/3d53ffabd88e18a525ccd8985ea5a6810a3601a0). 나는 그것이 2.2.x에서도 잘 작동 할 것이라고 생각한다. – Peanut

1

2.2.x에서 Play의 requireJS 통합과 관련하여 몇 가지 '문제'가 발생했습니다.

a) 경로 파일 자산 위치를 변경하지 마십시오. Play의 컨벤션은 모든 public javascript가 public/javascripts로 들어가고 requireJS 드라이버가 app/assets/javascripts로 이동하는 것으로 보입니다.

b)는 "playJavaSettings"나 같은 "playScalaSettings"아래 requireJS 라인 하단에 이동 build.sbt :

name := "TestContcatJS" 

version := "1.0-SNAPSHOT" 

libraryDependencies ++= Seq(
    javaJdbc, 
    javaEbean, 
    cache 
)  

play.Project.playJavaSettings 

requireJs += "main.js" 

requireJsShim += "main.js" 

C) 당신은 상대를 사용하여 드라이버의 공개 자바 스크립트를 참조 할 수 있습니다 통로. (main.js에서)처럼 뭔가 : 그는 커널 2.2.x를 사용하고

require.config({ 
    paths: { 
     'public-js': '../../public/javascripts' 
    } 
}); 

require([ 
    "public-js/foo", 
    "public-js/bar" 
]);