gpt4 book ai didi

javascript - Mocha + typescript : Cannot use import statement outside a module

转载 作者:行者123 更新时间:2023-12-01 15:19:56 24 4
gpt4 key购买 nike

我在看this video为了学习如何向我的 Express 路由添加一些简单的测试,但是我在执行测试时遇到了各种错误。错误是:

import * as chai from 'chai';

^^^^^^

SyntaxError: Cannot use import statement outside a module



我已经阅读了一些类似的 Stack Overflow 问题和 GitHub 问题,但我没有为我自己的应用程序找到解决方案。终于找到了 Mocha documentation在 GitHub 上关于 ES 模块,但它没有工作:

我使用 TypeScript 和 CommonJS 模块创建了应用程序进行转译,所以我添加了 "test": "env TS_NODE_COMPILER_OPTIONS='{\"module\": \"commonjs\" }' mocha src/test/*.ts"package.json脚本,但我每次都遇到相同的错误。我正在使用 ts-node作为服务器。

无论如何,这是我的 tsconfig.json文件:

{
"compilerOptions": {
"sourceMap": true,
"target": "es6",
"module": "commonjs",
"outDir": "./dist",
"rootDir": "./src"
},
"exclude": [
"node_modules"
]
}

这是 src/test/mi-route.ts文件:

import * as chai from 'chai';
import * as chaiHttp from 'chai-http';
import server from '../app';

// Assertions
chai.should();

chai.use(chaiHttp);

describe('API Users', () => {
// Test Route GET
describe('GET /api/admin/users', () => {
it('Should return all the users', done => {
chai.request(server)
.get('/api/admin/users')
.end((err, response) => {
response.should.have.status(200);
response.body.should.be.a('object');
done();
});
});
});
});

这是我的 package.json脚本:
"scripts": {
"dev": "ts-node-dev src/app.ts",
"start": "node dist/app.js",
"test": "env TS_NODE_COMPILER_OPTIONS='{\"module\": \"commonjs\" }' mocha src/test/*.ts",
"build": "tsc -p"
},

所以……有什么建议吗?我应该更改 Common JS 模块吗?提前致谢

最佳答案

有同样的问题,几乎放弃了使用带有 TypeScript 的 Mocha(在我们的例子中是 Angular 9)。
这对我有帮助:
tsconfig.json :
替换了这个:

"module": "esnext", 
有了这个:
"module": "commonjs",
同样在这里,我找到了一个带有 TypeScript 的 Mocha 工作示例,并使用了 tsconfig从那里提交文件以与我的比较:
https://medium.com/@RupaniChirag/writing-unit-tests-in-typescript-d4719b8a0a40

关于javascript - Mocha + typescript : Cannot use import statement outside a module,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60993812/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com