我在为我的 node express 应用程序编写快速测试时遇到了一些麻烦。问题是:在我的服务器文件中,我使用 es6 import 来导入我的自定义类。所以有这样一行:
import MyClass from 'src/myclass.js';
我的测试脚本如下所示:
npx babel-node srv/server.js
我得到的错误如下:
Syntax error: Unexpected identifier
导入后的模块名称高亮显示
那么为什么我首先要这样做呢?我认为每次需要测试我的 Web 应用程序时无需运行代码转译器来测试它会很好。
我已经尝试将 --experimental-modules 放在测试命令中,不幸的是它对我不起作用。我的节点版本是:11.14
我的入口点是这样的
import MyClass form 'src/myclass.js';
var myClass = new MyClass();
我的类文件是这样的
export default MyClass {
constructor() {
...
}
}
我的 babel 配置
require('@babel/register')({
only: [__dirname + '/src', __dirname + '/srv'],
ignore: [__dirname + 'node_modules'],
presets: ['@babel/preset-env']
});
var presets = [
[
'@babel/preset-env',
{
'useBuiltIns': 'entry',
'corejs': 'core-js@3'
}
]
];
var plugins = [
[
'module-resolver',
{
'root': ['./src'],
'alias': {
'lance': './node_modules/lance-gg/dist'
}
}
]
];
module.express = {
presets,
plugins
};
因此,我希望能够启动我的节点服务器来测试我的代码,而无需进行代码转换(我只会在需要我的应用程序的生产构建的情况下这样做)。
我不知道我到底是怎么做到的。我将不胜感激任何帮助或某种手册的链接。