170 похожих чатов

Здравствуйте, начинаю писать на ts проект, компилирую через tsc, на

выходе файлы без именений, тк бекенд, в целом не нуждаюсь в совместимости
Ранее делал всегда через module.exports и писал просто js файлы, но решил попробовать import/export из es6 после реакта

Как итог, после компиляции в js файлы и попытки запуска получаю от ноды ошибку

Error [ERR_UNSUPPORTED_DIR_IMPORT]: Directory import '/proj/dist/somefolder' is not supported resolving ES modules imported from /proj/dist/app.js

Вызвана она способом импорта файлов
Прописываю import * from "./src"
Предполагая, что файл index.js из этой папки автоматически подцепится

*Файл index - сборщик всего что уровнем ниже, то есть содержит
export * from "./dirname1";
export * from "./dirname2";
и тд

Однако нода вики сообщает:
import a directory URL is unsupported. Instead, self-reference a package using its name and define a custom subpath in the "exports" field of the package.json file.

import './'; // unsupported
import './index.js'; // supported
import 'package-name'; // supported

Возникает вопрос как быть в такой ситуации:
Как то настроить компилятор, чтобы изменился способ подгрузки модулей?
Прописывать в ts файлах пути до индекс файлов "./dirname1/index.js"?
Как-то сообщить ноде искать index файл по умолчанию?

Честно пытался играть с настройками tsconfig но ничего не вышло. (Пробуя первый вариант)
На данный момент вот такие:

{
"compilerOptions": {
"strict": true,
"target": "ES2020",
"moduleResolution": "Node",
"resolveJsonModule": true,
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true, //"allowSyntheticDefaultImports": true,
"forceConsistentCasingInFileNames": true,
"baseUrl": ".",
"outDir": "dist",
"rootDir": "./src",
"pretty": true
},
"include": ["src/**/*"]
}

Заранее спасибо

17 ответов

22 просмотра

забей, просто делай relative imports и забей на всё

Я 2 дня пытался найти как сделать так чтобы оно работало и не получилось.

[get(moods.com/good_mood.json)]- Автор вопроса

Что имеется ввиду под relative imports? Разве "./src" или "../../src" это не оно? У меня проблемка не в том что я полностью путь хардкожу до файла а в том что нода не ищет index.js при таком вот импорте

Та ты путь к файлу или к диру даешь ?

чтобы дир работал тебе нужно внутри дира иметь index.ts

"module": "CommonJS",

[get(moods.com/good_mood.json)]- Автор вопроса

В том то и проблема, что индекс лежит В app.ts запрашиваю /loaders директорию, подразумевая что оно подцепит index файл Index внутри - собирает файлы вокруг С create-react-app опускание /index.js в пути работало, тут - нет

не думаю что така можно middle.loader

[get(moods.com/good_mood.json)]- Автор вопроса

Аналогичная история, опускаем расширение и реакт компиллер искал .js по умолчанию :(

там вебпак есть

{ "extends": "../../tsconfig.json", "compilerOptions": { "target": "es5", "module": "commonjs", "moduleResolution": "node", "rootDir": "src", "outDir": "dist", "declaration": true, "esModuleInterop": true, "strict": true, "allowSyntheticDefaultImports": false }, "include": ["src"], "exclude": ["node_modules"] }

[get(moods.com/good_mood.json)]- Автор вопроса

а что за конфиг оно тут наследует? extends": "../../tsconfig.json",

Щас скину

{ "compilerOptions": { "sourceMap": true, "removeComments": true, "strict": true, "noImplicitAny": true, "strictNullChecks": true, "strictFunctionTypes": true, "noImplicitThis": true, "alwaysStrict": true, "noUnusedLocals": true, "noUnusedParameters": true, "noImplicitReturns": true, "noFallthroughCasesInSwitch": true, "skipLibCheck": true } }

"module": "commonjs", "moduleResolution": "node",| вот эта часть вроде важно

[get(moods.com/good_mood.json)]- Автор вопроса

Ну что ж, ошибка изменилась 🙂 Но работать все еще не хочет

ты кстатии не так вроде импортируешь

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта