Настраивать:
- Визуальная студия 2017
- Реформер (2017.2.2)
- Типскрипт (2.6.1)
- Жасмин (2.7.0)
Проблема:
- Браузер показывает средство запуска веб-тестов с сообщением «Спецификации не найдены».
- Видна ошибка консоли: Uncaught ReferenceError: экспорт не определен в referenceFile:2
- Uncaught ReferenceError: экспорт не определен в Tests.js:2
Дополнительная информация:
В инструменте разработки, если я нажму на referenceFile:2, я увижу исходный JS-код файла с таким содержимым:
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var User = (function () {
function User(name, surname) {
this._name = name;
this._surname = surname;
}
Object.defineProperty(User.prototype, "Name", {
get: function () {
return this._name;
},
enumerable: true,
configurable: true
});
Object.defineProperty(User.prototype, "Surname", {
get: function () {
return this._surname;
},
enumerable: true,
configurable: true
});
return User;
}());
exports.User = User;
//# sourceMappingURL=User.js.map
tsconfig.json
{
"compilerOptions": {
"module": "commonjs",
"target": "es5",
"lib": ["es5"],
"sourceMap": true
},
"exclude": [
"node_modules"
]
}
пакет.json
{
"name": "nodejs-console-app",
"version": "0.0.0",
"description": "NodejsConsoleApp",
"main": "app.js",
"author": {
"name": "ms"
},
"devDependencies": {
"@types/node": "^6.0.87",
"jasmine": "^2.8.0"
},
"dependencies": {
"@types/jasmine": "^2.8.2"
}
}
Любая идея о том, как я могу решить проблему?
ОБНОВЛЕНИЕ: проблема вызвана типом модуля commonJs, указанным в tsconfig.json. Это значение по умолчанию, предлагаемое многими шаблонами, и именно его я использую чаще всего. CommonJS, к сожалению, не может быть запущен в браузере сразу, его необходимо упаковать/обозревать, чтобы его можно было запускать в браузере. Для исходного кода я использую Gulp>browserify, и все работает правильно.
Я ожидал, что resharper сделает всю грязную работу за меня, но это не так. Как я могу использовать resharper для запуска этих тестов без ошибок, в моем случае мне даже не нужно открывать браузер, чтобы он мог работать в node.