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, время: 13:21. |