[英]Ava unit tests failing with TypeScript (“SyntaxError: Unexpected identifier”)
我正在學習TypeScript,並使用create-react-app
創建了TypeScript React create-react-app
。 它使用一個單獨的TypeScript文件logic.ts
,該文件又導入一個JSON文件。
import pastaData from './data/users-pasta.json'
const ParsedUserData = pastaData.map(data => ({name: data.name, gender:data.gender,favorites: data.favorites}));
export const getPastaData = () => ParsedUserData;
工作正常。 但是,當我運行Ava測試時(暫時不執行任何操作)
const {getPastaData} = require( '../src/logic.ts')
describe("A suite", function() {
it("contains spec with an expectation", function() {
expect(true).toBe(true);
});
});
我收到以下錯誤
/src/logic.ts:1 (function (exports, require, module, __filename, __dirname) { import pastaData from './data/users-pasta.json'; SyntaxError: Unexpected identifier
它在這里抱怨“ pastaData”導入。
我將Ava設置為使用Typescript(來自package.json)
{
"ava": {
"compileEnhancements": false,
"extensions": [
"ts"
],
"require": [
"ts-node/register"
]
}
}
現在,他們一直在努力使Ava-ts
工作。 同樣的問題。
我認為這是ts-node
的問題,但是將所有鏈接文件更改為“ require”被證明是有問題的(並且TypeScript開始抱怨)。 有沒有辦法使它與“ ES-6”“進口”一起使用? 還是我完全想不到的其他東西?
任何幫助,不勝感激!
AVA(帶有TypeScript設置)在執行之前將TypeScript代碼編譯回JavaScript。
除非您正在執行*.mjs
否則*.mjs
不支持esm語法。
所以,你有你的“模塊”設置為你的“CommonJS的” tsconfig.json
:
{
"compilerOptions": {
"module": "commonjs"
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.