Module parse failed: The keyword 'interface' is reserved
Пробовал загрузить собственный пакет в npm но после скачивания выдаёт ошибку "Module parse failed: The keyword 'interface' is reserved".
Информация из package.json
"main": "src/index.tsx",
"files": [
"src"
],
"devDependencies": {
"@typescript-eslint/eslint-plugin": "^7.3.1",
"@typescript-eslint/parser": "^7.3.1",
"eslint": "^8.57.0",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-prettier": "^5.1.2",
"eslint-import-resolver-typescript": "^3.6.1",
"eslint-plugin-react": "^7.34.1",
"eslint-plugin-react-hooks": "^4.6.0"
},
"dependencies": {
"react": "^18.0.0",
"typescript": "^5.5.4"
}
Долго искал решение этой проблемы но развёрнутого ответа нигде не было. Так же пробовал смотреть как это работает в других пакетах, но там всё тоже что указано сверху. Может кто-то может рассказать как решить эту проблему? |
Нужно добавить опцию типа transpileDependencies\transpilePackages(или что там у твоего сборщика) и указать там твой пакет.
По умолчанию сборщики не компилят ничего в node_modules, подразумевая что там уже скомпиленый код. P.S. В идеале и ты должен свой пакет в npm фигачить в скомпилированном виде, чтоб избежать возможных несовместимостей версий ts в будущих проектах, но тут тебе видней. |
Цитата:
|
Raadsert, ответа нет. Так как нет в js никакого однозначного "компилятора". Разве что: "как настроишь - так и будет".
Если говорить о сборщиках(webpack, vite, rollup...), то они обычно собирают таки в один файл. Если говорить о транспиляторе тайпскипта(tsc), то он в голом виде транспилирует только указанный файл или все файлы раздельно. |
Цитата:
Цитата:
|
Хз, не пользовался. Запусти да посмотри на результат.
Существует множество разных вариантов поставки: как целый однофайловый бандл, так и набор модулей с импортами. Браузер умеет из укоробки работать с модулями раскидными по файлам в формате esm, node умеет работать с esm и common'js. Существует так же множество иных не-нативных систем, типа amd или system.js, и множество способов собирать в один файл. |
| Часовой пояс GMT +3, время: 04:54. |