npm не устанавливайте модуль каждый раз

Проблема в том, что npm install каждый раз пересобирает и переустанавливает модуль, даже если модуль уже установлен.

Я сделал пакет .deb, который, среди прочего, устанавливает приложение nodejs.

Но этому приложению нужны модули express и sqlite3. Я устанавливаю их в postinst .deb:

npm install -g express sqlite3

И никогда не удаляйте его.

Итак, во время установки .deb модуль js sqlite3 каждый раз перекомпилируется и переустанавливается. Это занимает вечность на Raspberry.

Как заставить его работать правильно?


person Velkan    schedule 29.06.2015    source источник
comment
Не знаю, будет ли это правильно, но вместо установки можно использовать update. В этом случае npm проверит наличие устаревшего модуля и установит более новую версию, если она существует.   -  person Erdi İzgi    schedule 29.06.2015


Ответы (1)


На данный момент я иду с:

nodejs_modules="express sqlite3"
nodejs_modules_installed="$(npm list -g --depth=0)"

for m in $nodejs_modules; do
    if ! echo "$nodejs_modules_installed" | grep -q "\\s$m"@; then
        npm install -g "$m"
    else
        npm update -g "$m"
    fi
done
person Velkan    schedule 29.06.2015