![](/img/trans.png)
[英]Typescript with mocha - Cannot use import statement outside a module
[英]Mocha test: Cannot use import statement outside a module
我不確定這是 TS 設置還是需要調整什么或其他什么。 我已經看過這個,它對我沒有幫助: Mocha + TypeScript: Cannot use import statement outside a module and these posts about using <script src="file1.js" type="module"></script>
make沒意義,我在這里運行測試。
我用 mocha -r ts-node/register src/test/**/*.spec.tsx -r src/test/compiler.ts --color -w
運行我的測試
我import { MemoryRouter as Router } from "react-router-dom";
:
Cannot use import statement outside a module
特色公司.group.tsx
import { MemoryRouter as Router } from "react-router-dom";
import { expect, mount, React } from "../../test.imports";
import { FeaturedCompanyGroup, FormattedFeaturedCompany } from "../../../client/Company/FeaturedCompanies";
describe("Featured Company Group", () => {
const country: Country = {
id: 0,
name: "string",
images: {
flag: "string"
}
};
...
我在用着:
"node": "14.x"
"react-router": "^4.3.1",
"react-router-dom": "^4.3.1",
"@types/mocha": "^8.0.0",
"@types/mocha": "^8.0.0",
我有一個根目錄。/tsconfig.json:
{
"compilerOptions": {
/* Visit https://aka.ms/tsconfig.json to read more about this file */
"outDir": "./build",
"target": "ES2020", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */
"module": "es2020", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */
"lib": ["es5", "es6", "dom"], /* Specify library files to be included in the compilation. */
"moduleResolution": "node",
"allowJs": false, /* Allow javascript files to be compiled. */
// "checkJs": true, /* Report errors in .js files. */
"jsx": "react",
"noImplicitAny": false,
"sourceMap": false, /* Generates corresponding '.map' file. */
"rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */
"removeComments": true, /* Do not emit comments to output. */
"strict": true, /* Enable all strict type-checking options. */
"noUnusedLocals": true, /* Report errors on unused locals. */
"noUnusedParameters": true, /* Report errors on unused parameters. */
// "rootDirs": ["."], /* List of root folders whose combined content represents the structure of the project at runtime. */
"typeRoots": [
"node_modules/@types"
], /* List of folders to include type definitions from. */
"esModuleInterop": true,
"allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */
"preserveSymlinks": true, /* Do not resolve the real path of symlinks. */
"resolveJsonModule": true,
"skipLibCheck": true, /* Skip type checking of declaration files. */
"forceConsistentCasingInFileNames": true,
// "strictNullChecks": true
},
"include": [
"src"
],
"exclude": [
"/node_modules",
"/src/server",
"/src/client/js/ink-config.js",
"**/test",
"dist"
]
}
我有一個 /src/test/ tsconfig.json 。 (我不認為這實際上是出於某種原因擴展了我的根,它似乎不會影響這個 tsconfig):
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"noEmit": true,
"module": "es2020",
"target": "es2020",
"types": ["node","mocha", "chai", "react"],
"lib": ["es6"],
"compileOnSave": false,
"jsx": "react",
"sourceMap": false,
"skipLibCheck": true,
"esModuleInterop": true
},
"include": ["./**/*spec.tsx"],
"exclude": ["node_modules","./build"]
}
看起來您正在使用“監視”模式,根據ts-node docs需要extensions
選項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.