Мои выходные файлы исходных файлов ts находятся в папке root / distr.
Мои выходные файлы ts test находятся в той же папке, что и источники: root / tests
У меня такая структура каталогов:
root
--- distr
--- fileA.js
--- api
--- myapi.js
--- src
--- fileA.ts
--- api
--- myapi.ts
--- tests
--- unit
--- specs
--- api
--- testA.spec.js
--- testA.spec.ts
testA.spec.ts содержание:
import * as myapi from "api/myapi"; //<= this is where I get the error
describe("API: \"app/version\" route", () => {
it("should return the version", (done) => {
expect(200).toBe(200); //on purpose for now
done();
});
}
tsconfig.json содержание:
"outDir": "../distr",
"baseUrl": ".",
"paths": {
"*": ["src/*"],
"api/*": ["src/api/*"],
},
В содержимом gulpfile.js у меня есть:
runSequence('clean:tests', 'build:tests', 'jasmine', function() {
done();
});
gulp.task('build:tests', function () {
return gulp.src(['tests/**/*.ts'])
.pipe(ts())
.pipe(gulp.dest('tests/'));
});
gulp.task('jasmine', function(done) {
return gulp.src('tests/**/*.spec.js')
.pipe(plumber(function (error) {
console.info(error.toString());
this.emit('end');
}))
.pipe(jasmine());
})
Когда я запускаю команду gulp, я получаю:
[19:44:25] Starting 'build:tests'...
[19:44:28] Finished 'build:tests' after 2.39 s
[19:44:28] Starting 'jasmine'...
BLA:Error in plugin "gulp-jasmine"
Message:
Cannot find module 'api/myapi'
Details:
code: MODULE_NOT_FOUND
Есть идеи, почему я получаю это сообщение? Спасибо!





пытаться:
import EngineA from "./engines/engineA"
(убедитесь, что локальный путь правильный). Если это так, то вы должны правильно настроить "baseUrl": and "rootDirs" intsconfig.json`. Удачи.
Я ошибся насчет названий свойств, исправил. Что произойдет, если вы просто выполните jasmine или tsc без глотка? как `npx tsc && npx jasmine`? если это работает, gulp каким-то образом портит структуру ... извините, не очень помог - когда что-то ломается, я стараюсь упростить и перейти к основам ...
так что я предполагаю, что ваша проблема в конфигурации gulp - не в tsconfig.json - вы уверены, что хотите использовать gulp? Я уверен, что у вас есть свои причины, и gulp великолепен, но с помощью только машинописного текста и зависимостей ts-node и этих двух сценариев npm, которые вы запускали и наблюдали, и я уверен, что он быстрее, чем с gulp: "test": "ts -node node_modules / jasmine / bin / jasmine "," watch ":" tsc --watch "и, кстати, вам не нужно беспокоиться об исходных картах, чтобы легко отлаживать ваши тесты, потому что вы выполняете ts-код" напрямую ". мои два цента, удачи
Я настроил раздел путей в tsconfig.ts, чтобы мне не приходилось использовать относительный путь (это было бы что-то вроде "../../../../src/api/myapi"). Он отлично работает, когда Я собираю ts из папки src, а не из папки tests.