Несколько маленьких советов, которые облегчат мою жизнь.

Пряжа

Я думал, что это будет первоначальным когнитивным бременем, как Webpack. Это не. Это так просто; просто читая команды CLI и используя их одновременно с NPM, я мигрировал всего за несколько минут в день. И переключение в Git между Firebase 2 в производственной ветке и Firebase 3 в ветке разработки так же просто, как yarn install --force, когда я меняю ветки. Кроме того, отсутствие необходимости вводить --save всякий раз, когда я добавляю зависимость, окупило потраченное время. (Извините, NPM 5, вы опоздали.)

Цепочка команд Yarn/NPM

У меня было два сценария — один, который собирал все мои активы, передавая аргумент, который переключал конфигурации Webpack, и другой, который позволял мне выполнять развертывание в Google App Engine, не запоминая ключ проекта.

// package.json
"scripts":
  "build:prod": "cross-env ENV_TARGET=prod webpack -p,
  "deploy:prod": "cross-env ENV_TARGET=prod gcloud app deploy --project=myApp-28h5h"
}

Я должен был помнить, чтобы сделать их. Но с && это так же просто, как связать «развертывание» позади «сборки»:

// package.json
"scripts":
  "deploy:prod": "cross-env ENV_TARGET=prod webpack -p && gcloud app deploy --project=myApp-28h5h"
}

Попробуйте/перехватите асинхронные вызовы в Node.js

Не делай этого. Это не сработает. Однопоточная природа Node означает, что часть catch уже является древней историей к моменту разрешения асинхронного процесса.

Git Rebase Интерактивный

Я не буду повторять это, потому что помимо некоторой документации уже есть много хороших руководств, но, черт возьми, это стоит тридцати минут, которые я потратил на эксперименты. Теперь все мои коммиты исправление опечатки в предыдущем коммите уничтожаются, когда сливается запрос на извлечение.

Маяк

Маяк — это автоматизированный инструмент с открытым исходным кодом для улучшения качества веб-страниц. Вы можете запустить его на любой веб-странице, общедоступной или требующей аутентификации. Он имеет аудиты производительности, доступности, прогрессивных веб-приложений и многого другого.

Запустите команду терминала, получите хороший отчет об аудите сайта на основе производительности. Скоро вернусь, пойду сократит время рисования моего сайта на несколько миллисекунд.

[…часы тикают…]

Promise.map() от Bluebird с параллелизмом

Это не совсем полезно, как другие, но обновление 100 000 неправильно проверенных записей Firebase ОДИН ВЫЗОВ API ЗА РАЗ ИЗ-ЗА SDK превратился из кластера-сбоя-компьютера-обязательства-цепочкиf*** в двадцатиминутную задачу, выполняющую 100 за раз.

Если вам когда-нибудь понадобится реализовать какой-либо поток управления для набора обещаний Javascript, помните, что он существует. (Или оставьте мне комментарий, если вы знаете что-то лучше: ванильный шаблон JS или фреймворк)