SyntaxError:在严格模式下使用const。在使用Rails 5 API后端的React应用程序中

时间:2017-07-27 17:03:51

标签: javascript reactjs ruby-on-rails-5 rails-api

关于将React应用程序连接到Rails 5 API,我正在关注this tutorial。在创建Profile.dev部分的过程中,一切都很顺利,更确切地说是创建了用于管理本地运行开发和生产的rake任务。

Procfile.dev看起来像这样

web: cd client && PORT=3000 npm start
api: PORT=3001 && bundle exec rails s

按照说明操作,我将start.rake添加到/lib/tasks,如下所示:

namespace :start do
  task :development do
    exec 'foreman start -f Procfile.dev'
  end

  desc 'Start production server'
  task :production do
    exec 'NPM_CONFIG_PRODUCTION=true npm run postinstall && foreman start'
  end
end

desc 'Start development server'
task :start => 'start:development'  

然后我将foreman添加到开发组中的gemfile并按照指示运行bundle install

group :development do
  gem 'listen', '~> 3.0.5'
  # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
  gem 'spring'
  gem 'spring-watcher-listen', '~> 2.0.0'
  gem 'foreman', '~> 0.82.0'
end

然后教程说要运行

bin/rake start

导致此错误。

12:49:57 web.1  | const spawn = require('react-dev-utils/crossSpawn');
12:49:57 web.1  | ^^^^^
12:49:57 web.1  | SyntaxError: Use of const in strict mode.
12:49:57 web.1  |     at exports.runInThisContext (vm.js:73:16)
12:49:57 web.1  |     at Module._compile (module.js:443:25)
12:49:57 web.1  |     at Object.Module._extensions..js (module.js:478:10)
12:49:57 web.1  |     at Module.load (module.js:355:32)
12:49:57 web.1  |     at Function.Module._load (module.js:310:12)
12:49:57 web.1  |     at Function.Module.runMain (module.js:501:10)
12:49:57 web.1  |     at startup (node.js:129:16)
12:49:57 web.1  |     at node.js:814:3

我环顾四周找出问题可能是什么,但到目前为止我发现的唯一建议是升级Node.js,我已经尝试过(v4.x和最新发布时间v8.2.1) )。

这些节点升级都没有解决问题。此外,当错误指向cross-spawn包时,我认为可以在package.json文件中更改此包的版本。但是Create-React-App似乎以某种方式抽象已安装的软件包,这使得这项工作变得不那么简单。

非常感谢任何通过此错误的帮助!

0 个答案:

没有答案