2016-12-22 10 views
0

ノードjsで実行されているプロジェクトの資産を縮小したいと思います。私が使用しているARMプロセッサは、起動時に合理的な時間内にすべての資産を縮小するのに十分なパワーを持っていないため、ターゲット上で直接縮小したくありません。代わりにビルドホスト(Yocto)でminifyプロセスを開始したいと思います。私はこのプロセスの周りの助けをウェブ上で検索したが、私はしなかった。Yocto - NodeJSは資産を小さくします

理想的には、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

グローバルにインストールする必要はありません。私はあなたがビルドマシンで縮小し、縮小されたファイルをプロダクションマシンにプッシュできなかった理由は分かりません。 – SimpleJ

+0

私は間違って私の質問をします。 do_install()タスクの 'node host-minify-asset-script.js'の呼び出しはビルドマシン上で実行されますか?そして、ノードjsがビルドマシンにインストールされていなくても、ビルドマシンはノードjsを実行するのに必要な依存関係を持ちますか?初期の質問をしているgithubのimyllerによると、ホストマシンはすでに 'nodejs-native'でノードを実行できるように設定されています。私はよく分かったのですか? – erakis