-
-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CJS + ESM Builds #1
Comments
Можно конечно собрать. На счет pm2 я еще в 2020 у них в тикете проверял, что все работает (хотя ниже там в комментах не у всех работает и сам тикет открыт до сих пор). Может попробуем дебют в esm завести?) |
попробую сегодня, теоретически это может и ускорить его даже |
Давай. Ну если что cjs соберем конечно) |
Попробовал мигрировать и куча проблем сразу вылезло Увы это точно не продакшин уровень, не буду пока мигрировать, когда |
Ок, собираем cjs тогда! |
Собрал версию с поддержкой cjs. Установить можно через Проблемы вылезли для subpath + wildcard, через который экспортятся все тиньковские типы. Если в А если вручную исправить пути на Если в Зато код запускается :) С не-subpath импортами все хорошо: Пишут, что поддержки subpath в ближайшее время не будет. Вот еще тикет в репе тайпскрипта. Вобщем вариант просто ручками все тинькофф-типы ре-экспортить либо в package.exports, либо в отдельном файлике. @BusinessDuck попробуй у себя эту версию. И напиши что как. |
Получилось запустить, |
Сейчас запушу ядро, там можно собрать в репозитории Strategies слинковать ядро так Чтобы увидеть логи, нужно вот этот лог вынести из
|
Запросы истории заработали, перевыпустил токен, видимо со старым что-то не так было, Подписка на свечи тоже заработала, проверил выглядит хорошо все, сделки осталось проверить, это чуть позже |
Хотел вручную зареэкспортить все типы из Тинькофф, там тоже проблемка, т.к. есть дублирующиеся экспорты: Перечислять явно все типы совсем не хочется.
И тогда импорты будут выглядеть так: import { CandleInterval } from 'tinkoff-invest-api/marketdata'; В принципе довольно лаконично получается.
Ты имеешь ввиду вообще секцию exports убрать или только часть про Тинькофф типы? |
если все как ты в последнем сообщении предложил заработает - то можно оставлять, сделай с таким перечислением релиз и я проверю. На моей стороне проблема была когда есть exports в package.json, а я импортирую из /dist/ директории, там ругался толи тайпскрипт толи нода сама. |
Да, это нода. Если есть exports, то можно импортить только то, что в exports. А ты когда exports удалил, то импортил пути напрямую |
Новая версия выехала. import { CandleInterval } from 'tinkoff-invest-api/marketdata'; Тег тот же:
|
Проверил, js действительно видит import и require из библиотеки, TypeScript же упорно не хочет компилироваться, ругаясь на то, что типов нет.
|
4.7 TypeScript примерно такой синтаксис требует https://devblogs.microsoft.com/typescript/announcing-typescript-4-7-beta/#package-json-exports-imports-and-self-referencing // package.json
{
"name": "my-package",
"type": "module",
"exports": {
".": {
// Entry-point for `import "my-package"` in ESM
"import": {
// Where TypeScript will look.
"types": "./types/esm/index.d.ts",
// Where Node.js will look.
"default": "./esm/index.js"
},
// Entry-point for `require("my-package") in CJS
"require": {
// Where TypeScript will look.
"types": "./types/commonjs/index.d.cts",
// Where Node.js will look.
"default": "./commonjs/index.cjs"
},
}
},
// Fall-back for older versions of TypeScript
"types": "./types/index.d.ts",
// CJS fall-back for older versions of Node.js
"main": "./commonjs/index.cjs"
} UPD: Руками попробовал прописать в UPD2: Если не получится тайпскрипт завести на |
Попробовал
|
Резюмирую сюда, что обсудили в тг. Если не использовать
Если использовать
Кажется у них проблема в том, что генерятся Решили совсем убрать import { TinkoffInvestApi } from 'tinkoff-invest-api';
import { CandleInterval } from 'tinkoff-invest-api/cjs/generated/marketdata'; Выложил версию, @BusinessDuck проверяй :) |
Все работает, можно релизить ;) |
Зарелизил 4.0.0 с поддержкой cjs. |
Заодно завел тикет в @master-chief/alpaca alpacahq/alpaca-ts#106 |
Для корректной работы требуется 2 вида сборок, сконфигурируй сборщик по образу и подобию дебюта
Используй в package.json что-то типо того, чтобы мог работать как require c commonjs так и модульная архитектура.
Пример настроек в package.json
более современный подход через
exports
тут https://antfu.me/posts/publish-esm-and-cjsThe text was updated successfully, but these errors were encountered: