2016-12-22 4 views
0

노드 js에서 실행중인 프로젝트의 자산을 축소하고자합니다. 우리가 사용하고있는 ARM 프로세서가 시동시 합리적인 시간에 모든 자산을 축소 할 수있는 능력이 충분하지 않기 때문에 타겟에서 직접 축소하고 싶지 않습니다. 대신 빌드 호스트 (Yocto)에서 축소 프로세스를 시작하려고합니다. 나는이 과정에 대한 도움을 웹에서 찾았지만 그렇지 않았다.Yocto - 노드 J 축소 자산

이상적으로 Yocto의 do_install 작업에서 js 파일을 실행할 수있는 node-minify과 같은 것을 사용하고 싶습니다.

먼저 (meta-nodejs/issues/62)에 도움을 요청했지만 도움을받지 못했습니다. 따라서 저는 지금 우리가 서두를 때 여기에서 노력하고 있습니다. 그리고 저는 이것을 실현하는 방법에 대해 정말로 생각하지 못했습니다.

SRC_URI = "svn://URL_TO_THE_TARGET_PROJECT \ 
    file://host-minify-asset-script.js" 

DEPENDS = "nodejs-native " 
RDEPENDS_${PN} = "nodejs " 

inherit npm npm-install 

do_install() { 

    # This build/install dependency for target ? 
    oe_runnpm install 
    oe_runnpm prune --production 

    # Is it the proper way to install node-minify on the host like this ? 
    oe_runnpm_native install https://github.com/srod/node-minify/tarball/2.0.2 

    # Now, how can I run natively my script (host-minify-asset-script.js) 
    # to minify the assets present in the work folder of the recipe ? 
}  

안부,

답변

0

당신은 당신의 노드 소스를 작게를 위해 uglify을 사용할 수

여기에 기본 조리법 내 질문입니다.

npm install -g uglify # install uglify 

rm -rf ./minified # remove existing minified directory if it exists 

# minify each .js file in the current directory and place the output in ./minified 
find . -name "*.js" | xargs -I % sh -c 'mkdir -p ./minified/$(dirname %); uglify -s % -o ./minified/%' 
+0

좋은 해결책, 정말 고마워. uglify를 "-g"로 설치해야합니까? 나는'node host-minify-asset-script.js '를 호출하면 작동하고 프로세스를 빌드 머신에서 실행할 것인가 궁금하다. – erakis

+0

전역으로 설치하지 않아도됩니다. 나는 왜 당신이 빌드 머신에서 minify를 할 수없고 생산 된 머신으로 minified 파일을 보낼 수 있는지 보지 못한다. – SimpleJ

+0

제 질문에 잘못 대답했습니다. do_install() 태스크에서'node host-minify-asset-script.js'를 호출하는 것이 빌드 머신에서 실행됩니까? 그리고 빌드 머신에 노드 j가 설치되어 있지 않더라도 빌드 머신이 노드 j를 실행하는 데 필요한 종속성을 갖출 것인가? github의 imyller에 따르면 초기 질문을하기 때문에 호스트 머신은 이미 nodejs-native를 통해 노드를 실행할 수 있도록 구성되어 있습니다. 나는 잘 이해 했는가? – erakis