Несколько маленьких советов, которые облегчат мою жизнь.
Пряжа
Я думал, что это будет первоначальным когнитивным бременем, как 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 или фреймворк)