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 ответов

16 просмотров

забей, просто делай 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)]- Автор вопроса

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

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

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

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

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
DS
8
Карта сайта