Как загрузить ресурс из относительного пути в модуле nodejs?
В одном из моих модулей NodeJS мне нужно получить доступ к файлу, который является частью модуля, в отдельной папке (для модульных тестов). Пробовал __dirname
в вызывающем файле с относительным путем к этому файлу ресурса. Это работает при запуске из vscode, но не при выполнении npm test
в терминале. В этом случае построенный путь находится на одном уровне. Как это может быть?
Я должен добавить, что я использую машинопись для кодирования и Mocha для модульных тестов.
Просто вход __filename
немного помогает здесь. Это показывает, что в vscode исполняемый файл - это перенесенный файл JS, а в Mocha - исходный файл машинописи. Я бегу:
mocha --compilers ts:ts-node/register,tsx:ts-node/register
для моих тестов. Любая идея, как преодолеть это и убедиться, что используется правильный путь (кроме тестирования, если __filename
заканчивается .ts
)?
1 ответ
Ок, получается просто. Вместо того, чтобы запускать mocha с кодом ts, позвольте ему использовать переданный код. Требуется только пробный прогон перед тестированием:
"scripts": {
"prepublish": "tsc",
"install": "tsc",
"test": "tsc && mocha out/test"
},