使用WebStormconfigurationbabel以使用带有WebStorm Node.js项目的ES6

您好,我正在使用WebStorm最新版本与Node.js(express.js)框架的工作。 我已经设置了我的babel以便我可以使用ES6语法(例如

 import express from "express". 

Babel工作正常,它生成包含index.js.map的index.js。

问题是运行项目时,我仍然得到错误

 /usr/local/Cellar/node/7.10.0/bin/node /Volumes/Elements/Learning/Node/Project/NodeWebStorm/bin/www /Volumes/Elements/Learning/Node/Project/NodeWebStorm/routes/index.js:1 (function (exports, require, module, __filename, __dirname) { import express from "express" ^^^^^^ SyntaxError: Unexpected token import at createScript (vm.js:53:10) at Object.runInThisContext (vm.js:95:10) at Module._compile (module.js:543:28) at Object.Module._extensions..js (module.js:580:10) at Module.load (module.js:488:32) at tryModuleLoad (module.js:447:12) at Function.Module._load (module.js:439:3) at Module.require (module.js:498:17) at require (internal/module.js:20:19) at Object.<anonymous> (/Volumes/Elements/Learning/Node/Project/NodeWebStorm/app.js:8:13) Process finished with exit code 1 

Herer是我的项目 在这里输入图像描述

这是我babe生成的index.js。 看起来好,我甚至试图单独运行没有错误

 'use strict'; var _express = require('express'); var _express2 = _interopRequireDefault(_express); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // let express = require("express"); var router = _express2.default.Router(); /* GET home page. */ router.get('/', function (req, res, next) { // res.render('index', { title: 'Express' }); res.render('newindex', { title: 'Hey', message: 'Hello there!' }); }); router.get('/about', function (req, res) { res.send('what the hell'); }); router.get('/new', function (req, res) { res.json({ "test": "new value" }); }); router.get('/new/path', function (req, res) { res.send("what the new"); }); router.get('/newpath', function (req, res) { res.send('this is new path'); }); router.get('/testpath', function (req, res) { res.send('what the hell'); }); module.exports = router; //# sourceMappingURL=index.js.map 

模板来自web.storm中的node.jsexpression模板。 任何人都知道如何解决这个问题。 我需要添加任何额外的步骤吗? 谢谢

编辑我也改变语言 – 框架 – JavaScript到ES6,但仍然错误 在这里输入图像描述

更新我的configuration

在这里输入图像描述

在这里输入图像描述

为了说清楚:你的问题与WebStorm完全没有关系,错误来自运行你的代码的Node.js解释器。 Node.js本身仍然不支持ES6模块(实际上,目前没有JavaScript运行时支持它们 – ECMAScript没有定义一个“Loader”规范,它决定了模块是如何插入到运行时的,Loader规范是由WHATWG定义的,尚未最终确定)。 所以,为了得到ES6import/出口的接受,你需要使用transpilers。 目前的行业标准是巴别

要使事情正常工作,请尝试以下操作:

  • 在你的项目中使用npm install --save-dev babel-cli babel-preset-envnpm install --save-dev babel-cli babel-preset-env
  • 在项目根目录中创build一个.babelrc文件:

    {“presets”:[“env”]}

  • 在你的Node.js运行configuration中,将-r babel-register传递给Node:

在这里输入图像描述