首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >babel-node的永久错误

babel-node的永久错误
EN

Stack Overflow用户
提问于 2015-06-16 16:35:00
回答 4查看 8K关注 0票数 10

我有一个简单的节点服务器:

//server.js

代码语言:javascript
复制
import express  from 'express';
import React    from 'react';
...

当我尝试使用Forever运行此程序时

由于使用import而导致的forever start -c "babel-node --experimental" server.js错误

代码语言:javascript
复制
/Applications/MAMP/htdocs/React/ReactBoilerplates/koba04/app/server.js:1
(function (exports, require, module, __filename, __dirname) { import express  
                                                              ^^^^^^
SyntaxError: Unexpected reserved word
    at Module._compile (module.js:439:25)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:902:3
error: Forever detected script exited with code: 8

我也尝试过pm2nodemon,我也得到了同样的错误。对于pm2,我关注了这个问题https://github.com/Unitech/PM2/issues/1167,但它也不起作用。我在这里做错了什么?

EN

回答 4

Stack Overflow用户

发布于 2016-10-18 09:55:41

代码语言:javascript
复制
forever start -c "node -r babel-register" ./src/index.js

也是有效的。

票数 10
EN

Stack Overflow用户

发布于 2015-07-13 23:04:18

这对我来说适用于即时转写:forever start -c node_modules/.bin/babel-node server.js

另一种解决方案是像这样使用Require Hook

代码语言:javascript
复制
// server-wrapper.js
require('babel/register');

require('./server.js');

然后运行forever start server-wrapper.js

票数 8
EN

Stack Overflow用户

发布于 2015-06-19 17:42:15

我建议将es6脚本预编译成es5脚本,并使用forever start server.js命令运行应用程序,其中server.js是预编译的结果。

如果你正在为一个同构的应用程序使用react.js,你也需要为浏览器预编译你的脚本(通过browserifywebpack等)。

因此,与使用gulp或任何其他js构建系统进行预编译相比,我认为通过按需编译来使用es6脚本没有任何好处。

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

https://stackoverflow.com/questions/30862532

复制
相关文章

相似问题

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