SyntaxError: Неожиданный токен: при запуске Jest-теста с Aurelia в TypeScript - PullRequest
0 голосов
/ 17 декабря 2018

Только что создал новый проект TypeScript Aurelia, используя aurelia-cli.Установил bootstrap и включил загрузочный css в app.ts с помощью импорта.

import 'bootstrap/dist/css/bootstrap.min.css';
import '../../static/assets/css/app.scss';
import { routes } from './routes';

interface IApp {
  message: string;
}

export class App implements IApp{
  message = 'Hello World!';
}

Теперь, когда я запускаю тест, я получаю неожиданный токен ошибки, как показано ниже

yarn test

# and the output contains

yarn run v1.12.3
$ nps test
nps is executing `test` : nps test.jest
nps is executing `test.jest` : node node_modules/rimraf/bin.js test/coverage-jest && jest
ts-jest[config] (WARN) TypeScript diagnostics (customize using `[jest-config].globals.ts-jest.diagnostics` option):
message TS151001: If you have issues related to imports, you should consider setting `esModuleInterop` to `true` in your TypeScript configuration file (usually `tsconfig.json`). See https://blogs.msdn.microsoft.com/typescript/2018/01/31/announcing-typescript-2-7/#easier-ecmascript-module-interoperability for more information.
 FAIL  test/unit/app.spec.ts
  ● Test suite failed to run

    Jest encountered an unexpected token

    This usually means that you are trying to import a file which Jest cannot parse, e.g. it's not plain JavaScript.

    By default, if Jest sees a Babel config, it will use that to transform your files, ignoring "node_modules".

    Here's what you can do:
     • To hav`enter code here`e some of your "node_modules" files transformed, you can specify a custom "transformIgnorePatterns" in your config.
     • If you need a custom transformation specify a "transform" option in your config.
     • If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with the "moduleNameMapper" config option.

SyntaxError: Unexpected token :



  at ScriptTransformer._transformAndBuildScript (node_modules/jest-runtime/build/script_transformer.js:403:17)
  at Object.<anonymous> (src/home/app.ts:163:1)

Я прокомментировал импортСтрока bootstrap.css в app.ts и все работает нормально.

Мне не хватает какой-то конфигурации для jest, чтобы позволить мне использовать импорт css в компонентах .ts?

Вот часть моей шутки изpackage.json

"jest": {
    "verbose": true,
    "roots": [
      "<rootDir>/test"
    ],
    "modulePaths": [
      "<rootDir>/src",
      "<rootDir>/node_modules"
    ],
    "moduleFileExtensions": [
      "js",
      "json",
      "ts"
    ],
    "transform": {
      "^.+\\.ts$": "ts-jest"
    },
    "testRegex": "\\.spec\\.(ts|js)$",
    "testPathIgnorePatterns": [
      "build",
      "dist",
      "sample"
    ],
    "setupFiles": [
      "<rootDir>/test/jest-pretest.ts"
    ],
    "testEnvironment": "node",
    "collectCoverage": true,
    "collectCoverageFrom": [
      "src/**/*.{js,ts}",
      "!**/*.spec.{js,ts}",
      "!**/node_modules/**",
      "!**/test/**"
    ],
    "coverageDirectory": "<rootDir>/test/coverage-jest",
    "coverageReporters": [
      "json",
      "lcov",
      "text",
      "html",
      "clover"
    ]

  },

1 Ответ

0 голосов
/ 19 декабря 2018

Я получаю ту же ошибку.Я решил свою проблему, изменив модуль compilerOption в tsconfig.json с «esnext» на «commonjs». Почему я получаю «Неожиданный импорт токенов» в одном проекте веб-пакета, а не в другом?

...