'ava' 测试的 ES6 导入不工作
ES6 import for 'ava' test not working
我按照文档使用 ava 创建了我的第一个测试,但它似乎 运行 不正确。我收到以下错误。我尝试在文件顶部添加 import 'babel-register';
,它起作用了,但前提是我 运行 一个特定的测试文件。例如ava ./test/helpers/test_helper.js
。 运行 ava
本身虽然......导致下面的导入错误。有没有人知道如何解决这个问题?入门指南使用 ES6 导入,我不知道为什么我的不能正常工作。
(function (exports, require, module, __filename, __dirname) { import
test from 'ava';
^^^^^^ SyntaxError: Unexpected token import
test.js
import test from 'ava';
test(t => {
t.deepEqual([1, 2], [1, 2]);
});
yarm/npm 安装后,运行 ava --init
了吗?
在package.json中,命令是怎么说的?
如果你 运行(如果你使用 npm)npm run test
,它应该执行你的 package.json 中的命令。
如果你的测试目录中有任何 .js (ES6),它应该执行它(示例也在他们的 github 页面 https://github.com/avajs/ava 上)。
您不需要添加上面评论中提到的所有内容。
这些命令应该能让你正常工作 运行:
mkdir avatest
cd avatest
npm init
npm install --global ava (you probably did this already)
npm install --save-dev ava
ava --init
touch test/test.js
atom test/test.js (pasted your script)
npm run test
> 1 passed
添加到您的package.json
"ava": {
"files": [
"test/**/*.js"
],
"require": [
"babel-register"
],
"babel": "inherit"
},
你的.babelrc
{
"presets": ["es2015"]
}
然后你的进口应该工作。
有一种更简单的方法可以使用 AVA 的 ES 模块
$ npm install esm --save-dev
然后在你的 package.json 添加
{
"ava": {
"require": [
"esm"
]
}
}
Babel 永远无法正常工作,我每天花在调试工具上的时间比我的代码还要多!
将此添加到您的 package.json
"ava": {
"babel": true
}
例如
https://github.com/e2e-boilerplate/selenium-webdriver-es-modules-babel-ava/blob/master/package.json
https://github.com/e2e-boilerplate/puppeteer-es-modules-babel-ava/blob/master/package.json
对我来说,只需添加
"type": "module",
给我的 package.json
为了
import test from 'ava';
test('foo', t => {
t.pass();
});
运行正确。
我按照文档使用 ava 创建了我的第一个测试,但它似乎 运行 不正确。我收到以下错误。我尝试在文件顶部添加 import 'babel-register';
,它起作用了,但前提是我 运行 一个特定的测试文件。例如ava ./test/helpers/test_helper.js
。 运行 ava
本身虽然......导致下面的导入错误。有没有人知道如何解决这个问题?入门指南使用 ES6 导入,我不知道为什么我的不能正常工作。
(function (exports, require, module, __filename, __dirname) { import test from 'ava'; ^^^^^^ SyntaxError: Unexpected token import
test.js
import test from 'ava';
test(t => {
t.deepEqual([1, 2], [1, 2]);
});
yarm/npm 安装后,运行 ava --init
了吗?
在package.json中,命令是怎么说的?
如果你 运行(如果你使用 npm)npm run test
,它应该执行你的 package.json 中的命令。
如果你的测试目录中有任何 .js (ES6),它应该执行它(示例也在他们的 github 页面 https://github.com/avajs/ava 上)。
您不需要添加上面评论中提到的所有内容。 这些命令应该能让你正常工作 运行:
mkdir avatest
cd avatest
npm init
npm install --global ava (you probably did this already)
npm install --save-dev ava
ava --init
touch test/test.js
atom test/test.js (pasted your script)
npm run test
> 1 passed
添加到您的package.json
"ava": {
"files": [
"test/**/*.js"
],
"require": [
"babel-register"
],
"babel": "inherit"
},
你的.babelrc
{
"presets": ["es2015"]
}
然后你的进口应该工作。
有一种更简单的方法可以使用 AVA 的 ES 模块
$ npm install esm --save-dev
然后在你的 package.json 添加
{
"ava": {
"require": [
"esm"
]
}
}
Babel 永远无法正常工作,我每天花在调试工具上的时间比我的代码还要多!
将此添加到您的 package.json
"ava": {
"babel": true
}
例如
https://github.com/e2e-boilerplate/selenium-webdriver-es-modules-babel-ava/blob/master/package.json
https://github.com/e2e-boilerplate/puppeteer-es-modules-babel-ava/blob/master/package.json
对我来说,只需添加
"type": "module",
给我的 package.json
为了
import test from 'ava';
test('foo', t => {
t.pass();
});
运行正确。