簡體   English   中英

Ava單元測試因TypeScript失敗(“ SyntaxError:意外的標識符”)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM