巴贝尔&节点:转换后出错((0,_express.express)不是函数)

时间:2016-03-23 09:50:18

标签: javascript node.js babeljs

我正在通过Babel在NodeJS env中编写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文件夹,其中包含我的源代码和dist文件夹,其中包含' babel-code'。

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

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一起使用。

有什么想法吗?

1 个答案:

答案 0 :(得分:8)

您需要移除express周围的大括号。

import express from 'express';

express不会导出express属性。