Я получаю эту ошибку:
D:\nginx\ibdrweb\webapps\ibdr-document-2\doc-app\sources\forms\dynamic-form\lus\lus.js:1
import { Tools } from "@ShareUtils/tools";
^
SyntaxError: Unexpected token {
at Module._compile (internal/modules/cjs/loader.js:721:23)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
когда я пытаюсь выполнить следующую команду:
ts-mocha -p doc-app/tests/tsconfig.json doc-app/tests/lus-tests.ts
Эта проблема обсуждалась здесь https://github.com/Microsoft/TypeScript/issues/26018 и была закрыта. Попытка изменить "module": "commonjs" в tsconfig.json не помогает. Многие люди писали, что проблема все еще актуальна .
Мой проект выглядит следующим образом
|- doc-app
| |- < many direcotiries used at tests.ts >
| |- tests
| lus-tests.ts
| tsconfig.json
|
|- node_modules
|- tsconfig.json
Примечание: узел "v10.16.0"
tsconfig.json в каталоге тестов
{
"compilerOptions": {
"target": "es5",
"declaration": true,
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false,
"suppressImplicitAnyIndexErrors": true,
"lib": ["es6", "dom"],
"typeRoots": [
"node_modules/@types"
]
},
"awesomeTypescriptLoaderOptions": {
"useWebpackText": true,
"useTranspileModule": true,
"doTypeCheck": true,
"forkChecker": true
},
"include": [
"./"
],
"exclude": [
"node_modules"
]
}
полезная часть package.json
"devDependencies": {
"@types/chai": "4.1.7",
"@types/mocha": "5.2.7",
"@types/sinon": "7.0.13",
...
"chai": "4.2.0",
...
"mocha": "6.1.4",
...
"sinon": "7.3.2",
...
"ts-mocha": "6.0.0",
"ts-node": "8.4.1",
"typescript": "2.9.2", //if change it to "3.6.3" it dosen't help
}
Если я укажу "module": "exnext" в tsconfig.json, тогда ошибка:
D:\nginx\ibdrweb\webapps\ibdr-document-2\doc-app\tests\lus-tests.ts:1
import "mocha";
^^^^^^^
SyntaxError: Unexpected string
at Module._compile (internal/modules/cjs/loader.js:721:23)
Примечание: import {Tools} из "@ ShareUtils / tools";Модуль "Инструменты" в node_modules