Я пытаюсь переместить проект Typescript от CJS в ESM и, наряду с этим, наши тесты. Они используют ts-r-hest для запуска и используются для использования __dirname и __filename , но в соответствии с изменением на ESM я изменил их на использование import.meta.dirname и import.meta.filename . Неопределенный . Я проверил, а import.meta.url определяется, но это означало бы, что я должен был использовать FileUrltopath (новый URL (".", Import.Meta.url)) везде, чтобы получить __dirname . Я также проверил это в примерах папке официального репозитория TS-jest , и она также не определена или доступна при запуске с «модулем»: «Nodenext» .tsconfig.json
{
"compilerOptions": {
"module": "nodenext",
"moduleResolution": "nodenext",
"target": "esnext",
"isolatedModules": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
},
}
< /code>
jest.config.ts
import type { Config } from 'jest';
export default {
extensionsToTreatAsEsm: ['.ts', '.tsx', '.mts'],
testRegex: '.*\.spec\.ts',
transform: {
'^.+\\.m?tsx?$': [
'ts-jest',
{
tsconfig: './tsconfig.json',
useESM: true,
},
],
},
testEnvironment: 'node',
rootDir: '.',
} satisfies Config;
< /code>
package.json
{
"name": "project",
"private": true,
"type": "module",
"devDependencies": {
"@jest/globals": "^29.7.0",
"@types/jest": "29.5.14",
"@types/node": "22.10.10",
"typescript": "5.7.3"
},
"dependencies": {
"jest": "^29.0.0",
"ts-jest": "^29.3.3",
"ts-node": "^10.9.2"
}
}
< /code>
location.ts
export const getPath = () => {
return import.meta.dirname;
};
Подробнее здесь: https://stackoverflow.com/questions/796 ... n-using-ts
`import.meta.dirname` и` import.meta.filename` ‘не определены 'при использовании` ts-jest` [закрыто] ⇐ Javascript
Форум по Javascript
1749718267
Anonymous
Я пытаюсь переместить проект Typescript от CJS в ESM и, наряду с этим, наши тесты. Они используют ts-r-hest для запуска и используются для использования __dirname и __filename , но в соответствии с изменением на ESM я изменил их на использование import.meta.dirname и import.meta.filename . Неопределенный . Я проверил, а import.meta.url определяется, но это означало бы, что я должен был использовать FileUrltopath (новый URL (".", Import.Meta.url)) везде, чтобы получить __dirname . Я также проверил это в примерах папке официального репозитория TS-jest , и она также не определена или доступна при запуске с «модулем»: «Nodenext» .tsconfig.json
{
"compilerOptions": {
"module": "nodenext",
"moduleResolution": "nodenext",
"target": "esnext",
"isolatedModules": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
},
}
< /code>
jest.config.ts
import type { Config } from 'jest';
export default {
extensionsToTreatAsEsm: ['.ts', '.tsx', '.mts'],
testRegex: '.*\.spec\.ts',
transform: {
'^.+\\.m?tsx?$': [
'ts-jest',
{
tsconfig: './tsconfig.json',
useESM: true,
},
],
},
testEnvironment: 'node',
rootDir: '.',
} satisfies Config;
< /code>
package.json
{
"name": "project",
"private": true,
"type": "module",
"devDependencies": {
"@jest/globals": "^29.7.0",
"@types/jest": "29.5.14",
"@types/node": "22.10.10",
"typescript": "5.7.3"
},
"dependencies": {
"jest": "^29.0.0",
"ts-jest": "^29.3.3",
"ts-node": "^10.9.2"
}
}
< /code>
location.ts
export const getPath = () => {
return import.meta.dirname;
};
Подробнее здесь: [url]https://stackoverflow.com/questions/79662242/import-meta-dirname-and-import-meta-filename-are-undefined-when-using-ts[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия