在TypeScript中使用import关键字时,在运行Jasmine测试时遇到一些问题。
使用node -r ts-node/register ./node_modules/.bin/jasmine
在控制台中运行测试时,出现如下参考错误“未定义定义”:
/Users/jk/Documents/VSCodeProjects/AngularJSTestProject/app/tests/fringe.spec.js:1
define(["require", "exports", "../fringe"], function (require, exports, fringe_1) {
^
ReferenceError: define is not defined
at Object.<anonymous> (/Users/joshkramer/Documents/VSCodeProjects/AngularJSTestProject/app/tests/fringe.spec.js:1:63)
at Module._compile (internal/modules/cjs/loader.js:722:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:733:10)
at Module.load (internal/modules/cjs/loader.js:620:32)
...
我确定在设置"method":"amd"
和
可以通过在tsconfig中设置"module":"commonjs"
来避免,但是出于我也不了解的原因,我可以使用Live Server和chrome来使AngularJs应用程序正确加载和运行的唯一方法是使用“方法”: “ amd”。 (当在控制器内使用导入类时,Angular控制器无法使用其他设置加载。)。
我希望找到一种解决方案,既可以运行茉莉花测试,也可以在实时服务器中运行我的angularjs,而无需摆弄配置。似乎可以通过require.js
某种方式解决此问题,但我不知道该怎么做。我尝试了“需要模块支持”扩展程序,但没有帮助。