a_r*_*hah 10 node.js forever pm2 babeljs
我有一个简单的节点服务器:
//server.js
import express from 'express';
import React from 'react';
...
Run Code Online (Sandbox Code Playgroud)
当我尝试使用Forever运行时:
forever start -c "babel-node --experimental" server.js
,它因使用而错误 import
/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
Run Code Online (Sandbox Code Playgroud)
我也曾尝试PM2和nodemon,我得到同样的错误那里.对于pm2,我遵循了这个问题https://github.com/Unitech/PM2/issues/1167,但它也没有用.我在这做错了什么?
forever start -c "node -r babel-register" ./src/index.js
Run Code Online (Sandbox Code Playgroud)
也有效.
这适用于我的即时翻译: forever start -c node_modules/.bin/babel-node server.js
另一种解决方案是使用Require Hook,如下所示:
// server-wrapper.js
require('babel/register');
require('./server.js');
Run Code Online (Sandbox Code Playgroud)
然后跑forever start server-wrapper.js.
我建议将您的es6脚本预编译为脚本,并使用预编译结果的命令es5运行应用程序。forever start server.jsserver.js
如果您将 React.js 用于同构应用程序,您还需要为浏览器预编译脚本(通过browserify等webpack)。
因此,与使用预编译或任何其他 js 构建系统es6相比,我认为通过按需编译来处理脚本没有任何好处。gulp
| 归档时间: |
|
| 查看次数: |
6891 次 |
| 最近记录: |