Buefy не работает в Vue 3 (есть только полуготовый неофициальный форк). Автор Buefy написал для Vue 3 новый проект Oruga, избавившись при этом от жесткой привязки к Bulma, но оставив Bulma как одну из поддерживаемых тем.
Там-там это, вроде, фактически клиент одноклассников. База сообщений там общая. Ну и сделан он весьма хорошо, не удивлюсь, если там аудитория есть (из тех же одноклассников). К примеру, он очень быстрый, даже наверное быстрее телеги, не похож на типовой продукт от Мейл ру. Скорее похож не на китайский клон, а на корейский. Есть АПИ для ботов и вообще достаточно проработанный клон.
Предложенный вами упрощенный подход работает только в простом случае единого системного интерпретатора node и не будет работать при использовании современных систем управления версиями интерпретаторов, таких как mise.
Например, типовой скрипт pnpm lint-staged упадет с ошибкой:
.git-hooks/pre-commit: line 2: pnpm: command not found
в то время как с husky он не упадет, так как husky имеет свою точку входа, которая запускает дополнительную инициализацию через ~/.huskyrc.
Ни-че-го.
Вы забыли прикрепить еще содержимое собственно точки входа husky (.husky/_/h), которая как раз и добавляет эту ценность.
P.S. Не следует использовать postinstall, нужно использовать prepare. postinstall выполняется в том числе когда ваш модуль устанавливается как зависимость для другого модуля, то есть при этом он будет или показывать ложное сообщение об ошибке, или портить конфиг гита пользователям.
Предложенный мною вариант лучше тем, что первая из двух строк (создание обработчика вызовом serverless(app)) вызовется ровно один раз за время жизни программы. Я же написал: "закешировать [в константе] на уровне модуля".
В предложенном же автором коде новый обработчик создается при обработке каждого запроса, обрабатывает ровно один запрос и затем уничтожается сборщиком мусора. Это медленнее.
1) Вместо path: event.url нужно писать path: event.url.replace(/\?.*/, ""), иначе это нарушает спецификацию (и OpenAPI, и Express). @koa/router вообще не работает без этого, например.
2) Вместо return serverless(app)(patchedEvent, context) нужно, конечно, закешировать на уровне модуля const _handler = serverless(app) и затем вызывать return _handler(patchedEvent, context)
3) Вместо get: в OpenAPI спецификации нужно использовать x-yc-apigateway-any-method:, чтобы работали POST, PUT и т.д.
Buefy не работает в Vue 3 (есть только полуготовый неофициальный форк). Автор Buefy написал для Vue 3 новый проект Oruga, избавившись при этом от жесткой привязки к Bulma, но оставив Bulma как одну из поддерживаемых тем.
Там-там это, вроде, фактически клиент одноклассников. База сообщений там общая. Ну и сделан он весьма хорошо, не удивлюсь, если там аудитория есть (из тех же одноклассников). К примеру, он очень быстрый, даже наверное быстрее телеги, не похож на типовой продукт от Мейл ру. Скорее похож не на китайский клон, а на корейский. Есть АПИ для ботов и вообще достаточно проработанный клон.
Предложенный вами упрощенный подход работает только в простом случае единого системного интерпретатора node и не будет работать при использовании современных систем управления версиями интерпретаторов, таких как mise.
Например, типовой скрипт
pnpm lint-staged
упадет с ошибкой:в то время как с husky он не упадет, так как husky имеет свою точку входа, которая запускает дополнительную инициализацию через
~/.huskyrc
.Вы забыли прикрепить еще содержимое собственно точки входа husky (
.husky/_/h
), которая как раз и добавляет эту ценность.P.S. Не следует использовать
postinstall
, нужно использоватьprepare
.postinstall
выполняется в том числе когда ваш модуль устанавливается как зависимость для другого модуля, то есть при этом он будет или показывать ложное сообщение об ошибке, или портить конфиг гита пользователям.dayjs это а) монолит, а не tree shakeable набор утилит, б) тащит за собой доморощенные локали, а не использует Intl.DateTimeFormat.
Над Intl.DateTimeFormat вообще нет хороших врапперов, приходится свои писать. Поэтому начинание хорошее.
Предложенный мною вариант лучше тем, что первая из двух строк (создание обработчика вызовом
serverless(app)
) вызовется ровно один раз за время жизни программы. Я же написал: "закешировать [в константе] на уровне модуля".В предложенном же автором коде новый обработчик создается при обработке каждого запроса, обрабатывает ровно один запрос и затем уничтожается сборщиком мусора. Это медленнее.
Несколько замечаний:
1) Вместо
path: event.url
нужно писатьpath: event.url.replace(/\?.*/, "")
, иначе это нарушает спецификацию (и OpenAPI, и Express). @koa/router вообще не работает без этого, например.2) Вместо
return serverless(app)(patchedEvent, context)
нужно, конечно, закешировать на уровне модуляconst _handler = serverless(app)
и затем вызыватьreturn _handler(patchedEvent, context)
3) Вместо
get:
в OpenAPI спецификации нужно использоватьx-yc-apigateway-any-method:
, чтобы работали POST, PUT и т.д.