我无法使用导入,因为我总是遇到此错误:
(function (exports, require, module, __filename, __dirname) { import { expect } from 'chai';
SyntaxError: Unexpected token import
在我的文件index.test.ts
中,我有这个:
import { expect } from 'chai';
describe('Hello function', () => {
it('should return hello world', () => {
const result = hello();
expect(result).to.equal('Hello World!');
});
});
在我的package.json
中,我有这个:
"scripts": {
"test": "mocha --reporter spec --compilers test/**/*.test.js",
},
我的tsconfig.json
:
{
"compilerOptions": {
"target": "es2017",
"module": "commonjs",
"lib": [
"dom",
"es2015"
],
"outDir": "dist",
"strict": false
}
}
请告诉我如何使用进口商品?
答案 0 :(得分:1)
这对我有用。
npx mocha --require ts-node/register --require esm src/**/*.spec.ts
或在package.json
脚本中(两个选项均起作用,请选择您喜欢的任何一个):
"scripts": {
"test": "mocha -r esm -r ts-node/register src/**/*.spec.ts",
"test-ts": "ts-mocha -r esm -p tsconfig.json src/**/*.spec.ts"
}
不要忘记将esm
添加到devDependencies
:
npm install --save-dev esm
因此在package.json中它将成为
"devDependencies": {
"esm": "^3.2.25"
}
P.S。感谢@ user318830,您使我意识到可以指定多个'--require'。
答案 1 :(得分:0)
mocha +打字稿+ es6模块
{
"compilerOptions": {
...
"module": "commonjs"
}
}
--require ts-node/register
--require @babel/register
...
答案 2 :(得分:0)
test
#pragma GCC push_options
#pragma GCC optimize ("O0")
void test(int n)
{
int i;
for (i = 0; i < n; i++) {
s.code[i] = 1;
}
}
#pragma GCC pop_options