Запуск npm через hook Git, на хостинге Timeweb.

Редакция автор: stain
  1. Стандарт post-receive должен быть запускаемым, ну или другой ваш hook. chmod +x post-receive
  2. Первым в файле нужно указывать каким шелом все будет запускаться. На timeweb sh не взлетит будет ошибка. используйте #!/bin/bash.
    3.По ssh все пути и алиасы прописанные в ~/.bash_profile не работают. Нужно прописать их непосредственно в файл post-receive.

Пример:
cd public_html
export PATH=~/.utils/nodejs/bin:~/.sh:$PATH
alias node='~/.utils/nodejs/bin/node'
alias npm='~/.utils/nodejs/bin/npm'

Вывод возможной ошибки при исполнении npm, цифра 2 означает вывод вместо результата обработки, ошибки в файл если они есть, чтобы можно было понять причину.
npm -v 2> _npm.log

Ну и пример разворачивания или обновления пакетов с помощью npm на сайте.
if [ -e "package.json" ]; then
if [ -d "node_modules" ]; then
~/.utils/nodejs/bin/npm update
else
~/.utils/nodejs/bin/npm install
fi
fi

То же для composer длинные тире двойные тире
if [ -e "composer.json" ]; then
if [ -d "vendor" ]; then
/opt/php7.2/bin/php -d memory_limit=500M ~/.utils/composer.phar update --no-dev
else
/opt/php7.2/bin/php -d memory_limit=500M ~/.utils/composer.phar install --no-dev
fi
fi

Перед всем этим делом пропуская выше только второй пункт #!/bin/bash, стандартный хук для разворачивания репозитория
cd ..
GIT_DIR='.git' git reset --hard

Еще есть такой момент, но не в курсе повлиял ли он как нибудь. место расположения вашего скаченного node.js , для установки глобально пакетов(у меня другой путь.
npm config set prefix '~/.npm-global'
Статья

Про отлов ошибок через перенаправление типа такого npm -v 2> _npm.log
Статья про перенаправление ввода-вывода.

Комментариев: 0

Cписки установленных пакетов npm с заданной глубиной

Редакция автор: stain

Посмотреть список пакетов установленных глобально:
npm list -g --depth=0

Посмотреть список пакетов установленных для проекта в корневой папке которого находимся - для package.json
npm list -D --depth=0

Комментариев: 0

Когда npm при установке пакетов выпадает в осадок

Редакция автор: stain

Сказ: Стабильная версия node.js 10.16 lts, но увы и ах иногда npm при установке пакетов выпадает в осадок, и логи ошибку объясняют слабо. Установил альтернативный менеджер yarn, тот после запуска обнаруживает старый package-lock.json, пересобирает зависимости в yarn.lock, и ставит пакет. В чем проблема(win10/stable version node) сложно сказать, но вот решение в форме котенка.

P.S.: Если присутствует старый package-lock.json выскакивает предупреждение, удаление этого файла отключает предупреждение, но практически никак не влияет на проверку зависимостей. Они проверяется каждый раз по новой.

Комментариев: 0

Node_modules в кеше.

Редакция автор: stain

То что в windows не завезли, но на линукс работает.

yarn - -pnp
или в package.json добавить: "installConfig": {"pnp": true}

Поскольку модуль остаётся в кеше, postinstall-скрипты, меняющие его состояние (например, докачивающие дополнительные файлы) могут повредить кеш и сломать остальные проекты, зависящие от него. Разработчики Yarn рекомендуют отключать исполнение скриптов флагом --ignore-scripts.

Для пакетов которые завязаны на node_modules, есть команда yarn unplug --persist, которая извлечет модуль из кеша и разместит его локально в node_modules.

Переназначение местоположения каталога node_modules, возможно с помощью файла .yarnrc в корне проекта. Ниже пример содержимого:
--modules-folder public_html/node_modules

Источник.

Комментариев: 0

Working with Files · gulp.js

Редакция автор: stain

GitHub репозиторий с примером использования : woodsleaf/gulp4-workingExample
Ссылка на помощь по работе с файлами.

Пример промежуточного сохранения, и ереименования потока-будщего файла.

Пример использования условия.

Комментариев: 0

Vue.js Примитивы

Редакция автор: stain

Официальный сайт vue.js
Видео уроки по основам vue.js

Простое определение типа элемента DOM идентификатор, класс, тег el: "#app" или ".app" или "body".
Условия v-if, v-else, v-elseif.
Вспомогательный v-show, показывает или прячет элемент в зависимости от состояния булевого триггера. !,<,>,=== - неравно,меньше, больше, равно. &&,|| - and, or.
Пример: <p v-if="color === 'red'">Что-то </p>
<img v-bind:src="/vue-js-primitivy/"> , здесь image - ссылка на картинку в данных скрипта.
Также можно привязывать к таким атрибутам как class, href, alt, title, style, disabled, и полагаю прочим.

Циклы v-for.

Тоже но для перебора с ключами.

События

<button @click="outdatel.quantity -= 1">-</button> <button v-on@click="outdatel.quantity -= 1">-</button> The v-on directive is used to allow elements to listen for events The shorthand for v-on is @ The v-on directive can trigger a method Triggered methods can take in arguments this refers to the current Vue instance’s data as well as other methods declared inside the instance.

Функции

Комментариев: 0