node使用react_on_rails gem创建演示项目的问题

时间:2017-07-27 17:16:07

标签: node.js reactjs webpack ruby-on-rails-5.1 react-on-rails

我正在尝试按照tutorial使用gem react_on_rails创建一个虚拟项目

我想我已经按照教程的每一步进行操作,但是在我们必须运行项目的最后一步,弹出一个节点js相关错误。 我甚至在系统上更新了我的节点版本,仍面临同样的问题

错误

foreman start -f Procfile.dev
22:30:58 web.1    | started with pid 5370
22:30:58 client.1 | started with pid 5371
22:30:59 client.1 | (in /home/projects/test-react-on-rails)
22:31:00 web.1    | => Booting Puma
22:31:00 web.1    | => Rails 5.1.2 application starting in development on http://localhost:3000
22:31:00 web.1    | => Run `rails server -h` for more startup options
22:31:00 web.1    | Puma starting in single mode...
22:31:00 web.1    | * Version 3.9.1 (ruby 2.4.0-p0), codename: Private Caller
22:31:00 web.1    | * Min threads: 5, max threads: 5
22:31:00 web.1    | * Environment: development
22:31:00 web.1    | * Listening on tcp://localhost:3000
22:31:00 web.1    | Use Ctrl-C to stop
22:31:01 client.1 | yarn run v0.27.5
22:31:01 client.1 | $ NODE_ENV=development webpack -w --config webpack.config.js
22:31:01 client.1 | /home/projects/test-react-on-rails/client/webpack.config.js:6
22:31:01 client.1 | const {resolve } = require('path');
22:31:01 client.1 |       ^
22:31:01 client.1 | 
22:31:01 client.1 | SyntaxError: Unexpected token {
22:31:01 client.1 |     at exports.runInThisContext (vm.js:53:16)
22:31:01 client.1 |     at Module._compile (module.js:373:25)
22:31:01 client.1 |     at Object.Module._extensions..js (module.js:416:10)
22:31:01 client.1 |     at Module.load (module.js:343:32)
22:31:01 client.1 |     at Function.Module._load (module.js:300:12)
22:31:01 client.1 |     at Module.require (module.js:353:17)
22:31:01 client.1 |     at require (internal/module.js:12:17)
22:31:01 client.1 |     at requireConfig (/home/shubhangi/projects/test-react-on-rails/client/node_modules/webpack/bin/convert-argv.js:96:18)
22:31:01 client.1 |     at /home/projects/test-react-on-rails/client/node_modules/webpack/bin/convert-argv.js:109:17
22:31:01 client.1 |     at Array.forEach (native)
22:31:01 client.1 | error Command failed with exit code 1.
22:31:01 client.1 | info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
22:31:02 client.1 | exited with code 1
22:31:02 system   | sending SIGTERM to all processes
22:31:02 web.1    | - Gracefully stopping, waiting for requests to finish
22:31:02 web.1    | === puma shutdown: 2017-07-27 22:31:02 +0530 ===
22:31:02 web.1    | - Goodbye!
22:31:02 web.1    | Exiting
22:31:02 web.1    | exited with code 0

1 个答案:

答案 0 :(得分:1)

您尝试使用object destructuring,这是第一个supported in Node version 6,并且在节点4中不可用。

您应该升级您的Node版本,特别是因为不再主动维护版本4,这意味着只应用关键修复,直到它达到使用寿命结束时(有关详细信息,请参阅{{3 }})。

如果您仍然需要使用节点4,则无法使用对象解构并且必须将行更改为:

const resolve = require('path').resolve;

另一种可能性是使用Babel来转换不受支持的功能,但对于配置而言似乎有点沉重。