首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用babel-node导入es6模块?

如何使用babel-node导入es6模块?
EN

Stack Overflow用户
提问于 2019-04-22 04:11:53
回答 1查看 411关注 0票数 1

我在为我的node express应用程序编写快速测试时遇到了一些问题。问题是:在我的服务器文件中,我使用es6导入来导入我的自定义类。这里有一行代码:import MyClass from 'src/myclass.js';

我的测试脚本如下所示:

npx babel-node srv/server.js

我得到的错误如下:

Syntax error: Unexpected identifier突出显示导入后的模块名称

那么为什么我首先要这么做呢?我认为测试我的web应用程序会很好,每次我需要测试它的时候都不运行代码转译器。

我已经尝试过把--实验性的--模块放在测试命令中,不幸的是它对我不起作用。我的节点版本是: 11.14

我的切入点是这样的

代码语言:javascript
复制
import MyClass form 'src/myclass.js';

var myClass = new MyClass();

我的类文件如下

代码语言:javascript
复制
export default MyClass {
 constructor() {
  ...
 }
}

我的babel配置

代码语言:javascript
复制
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
};

因此,我希望能够启动节点服务器来测试我的代码,而无需执行代码转换(我只会在需要应用程序的产品构建的情况下这样做)。

我不知道我怎么才能做到这一点。我会感谢任何帮助或链接到某种类型的手册。

EN

回答 1

Stack Overflow用户

发布于 2019-04-22 07:16:50

嗨,我不明白为什么,但是像这样重写我的babel配置,事情开始起作用了:

代码语言:javascript
复制
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.exports = function (api) {
    api.cache(false);

    return {
        presets,
        plugins
    };
};

我不会接受我的回答,跳跃别人会给我更好的解释为什么我之前的配置不够好,但我把它留在这里,也许它会对某人有用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55786375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档