首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >通过WebStorm配置Babel以在WebStorm Node.js项目中使用ES6

通过WebStorm配置Babel以在WebStorm Node.js项目中使用ES6
EN

Stack Overflow用户
提问于 2017-05-27 13:04:07
回答 2查看 5.1K关注 0票数 3

我正在使用最新版本的WebStorm来处理Node.js (express.js)框架。我已经设置了我的Babel,这样我就可以使用ES6语法,例如:

代码语言:javascript
复制
import express from "express".

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

问题是在运行项目时,我仍然收到以下错误

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

这是我的项目

这是我的index.js,由babel生成。听着,我甚至试着不出错地单独运行它。

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

该模板来自webstorm的node.js express模板。我需要添加任何额外的步骤吗?

编辑

我还将language - framework - javascript更改为ES6,但仍然出错

更新我的配置

EN

回答 2

Stack Overflow用户

发布于 2020-06-26 21:54:48

与@lena相同,但我使用的是" @babel/register ",我补充道--require @babel/register

票数 0
EN

Stack Overflow用户

发布于 2021-06-23 03:38:14

作为使用Node.js运行配置的替代方案,您可以考虑使用npm配置并直接使用适当的脚本。例如:

package.json

代码语言:javascript
复制
"scripts": {
  "start": "babel-node src/index.js"
}

在Webstorm:https://i.stack.imgur.com/jrj8H.png

Difference between running babel-register vs babel-node

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

https://stackoverflow.com/questions/44213145

复制
相关文章

相似问题

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