2016-12-22 5 views
0

Я хотел бы минимизировать активы проекта, запущенного на узле js. Я не хочу минимизировать прямо на цель, поскольку процессор ARM, который мы используем, не имеет достаточной мощности, чтобы минимизировать все активы в разумные сроки при запуске. Вместо этого я хотел бы запустить процесс minify на хосте сборки (Yocto). Я искал в Интернете любую помощь вокруг этого процесса, но я этого не делал.Yocto - NodeJS minify assets

В идеале я хотел бы использовать что-то вроде node-minify, чтобы я мог запускать файл js со сборщика в задаче do_install Yocto.

Сначала я попросил помочь (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

Я неправильно задаю свой вопрос. Является ли вызов 'node host-minify-asset-script.js' задачи do_install() выполняться на машине сборки? И, есть ли в машине сборки зависимости, необходимые для запуска узла js, даже если узел js не установлен на сборной машине? Согласно imyller в github, где я задаю свой первоначальный вопрос, хост-машина уже настроена на то, чтобы иметь возможность запускать узел через 'nodejs-native'. Я хорошо понял? – erakis

 Смежные вопросы

  • Нет связанных вопросов^_^