【发布时间】:2016-05-05 21:50:19
【问题描述】:
在我编写测试用例的测试文件中,我导入了如下的打字稿文件:
import {rootReducer} from "../src/reducers/rootReducer";
在 rootReducer.ts 中,我导入了另一个 typescript 文件,如下所示:
import taskReducer from "./taskReducer.ts";
然后显示错误:
SyntaxError: Unexpected reserved word
at src/reducers/rootReducer.ts:7
rootReducer.ts 和 taskReducer.ts 都在文件夹 /src/reducers 下
如果您从导入语句中删除“.ts”,则不会失败测试,但会在浏览器中引发错误。该应用程序将无法运行
小袋鼠配置如下:
module.exports = function (wallaby) {
return {
files: [
'src/*.ts',
'src/**/*.ts'
],
tests: [
'test/*Test.ts'
],
testFramework: "mocha",
env: {
type: 'node'
},
compilers: {
'**/*.ts': wallaby.compilers.typeScript({
/* 1 for CommonJs*/
module: 1
})
}
}
};
【问题讨论】:
-
您确定这不是因为您在第二次导入中缺少 { } 吗?看起来像是语法错误。
-
我曾尝试在第二次导入中添加 {}。仍然显示相同的错误。我猜这是我在小袋鼠配置中错过的东西,因为当我删除扩展名“.ts”时,就没有小袋鼠错误
-
您需要从导入中删除
.ts,否则您只是将 TypeScript 文件加载为 JavaScript,因此会出现错误。 -
如果我从导入中删除 .ts,浏览器将读取其 js 文件而不是 ts,这会导致一些问题,并且应用程序将无法在浏览器中运行。有什么方法可以让它同时在小袋鼠和浏览器中工作?
-
我不知道你为什么需要在浏览器中加载 ts 而不是 js,你的构建过程/模块捆绑器应该为你的浏览器正确编译东西。无论如何,请创建一个示例存储库来展示您的问题,乐于研究它并提供帮助。
标签: typescript wallaby.js