【问题标题】:Babel & Node : Error after transpiling ((0 , _express.express) is not a function)Babel & Node : 编译后出错 ((0 , _express.express) 不是函数)
【发布时间】:2023-04-07 01:59:02
【问题描述】:

我正在通过 Babel 在 NodeJS 环境中编写 ES6。所以这是我的.babelrc 文件:

{
  "presets": ["es2015", "stage-2"],
  "plugins": []
}

是的,很简单。我正在使用 npm 脚本来启动命令:

"build-server": "babel server/lib -d server/dist",
    "build-server:w": "babel server/lib -w -d server/dist",

而且效果很好。在server/ 下,我有一个包含我的源代码的lib 文件夹和一个带有'babel-code' 的dist 文件夹。

通常情况下,我可以这样写:

import { ModuleAPI } from './api/moduleAPI';
import { path } from 'path';
import { fs } from 'fs';
import { express } from 'express';
let app = express();

成功转译为:

'use strict';

var _moduleAPI = require('./api/moduleAPI');

var _path = require('path');

var _fs = require('fs');

var _express = require('express');

var app = (0, _express.express)();

问题是,当我执行node server/dist/server.js 时,抛出一个错误:

var app = (0, _express.express)();
                               ^
TypeError: (0 , _express.express) is not a function

我看到了一些“类似”的问题: https://stackoverflow.com/questions/35187535/using-babel-jest-and-get-typeerror-0-createclass3-default-is-not-a-functio webpack babel es7 async function error "TypeError: (0 , _typeof3.default) is not a function"

但我的代码无法与 Babel 一起使用。

有什么想法吗?

【问题讨论】:

    标签: javascript node.js babeljs


    【解决方案1】:

    你需要去掉express周围的大括号。

    import express from 'express';
    

    express 不会导出 express 属性。

    【讨论】:

    • Mh.我没有足够的搜索。谢谢。
    • 现在我想它同样适用于您的其他导入。
    猜你喜欢
    • 2015-09-10
    • 2016-05-28
    • 2018-02-10
    • 2016-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-20
    相关资源
    最近更新 更多