Coder Social home page Coder Social logo

limenius / symfony-react-sandbox Goto Github PK

View Code? Open in Web Editor NEW
337.0 18.0 77.0 3.85 MB

Example of integration with React and Webpack (Webpack Encore) for universal (isomorphic) React rendering, using Limenius/ReactBundle and Limenius/LiformBundle

License: MIT License

PHP 41.23% JavaScript 52.48% SCSS 0.62% Twig 5.67%
symfony react webpack json-schema webpack-encore

symfony-react-sandbox's Introduction

Symfony React Sandbox

This sandbox provides an example of usage of ReactBundle with server and client-side React rendering (universal/isomorphical) and its integration with a fitting Webpack Encore setup. It also provides an example of the usage of LiformBundle to generate a json-schema from Symfony forms and a forms and validation in React from that schema.

Note: If you are new to React.js, please note that this sandbox or the bundle are not by any means required to use React with Symfony. This showcases how to do some advanced features such as Server Side Rendering, a better integration with forms, injecting components directly from Twig tags, that may be difficult.

You can see this example live at http://symfony-react.limenius.com/

It is also a fully functional Symfony application that you can use as skeleton for new projects.

It has three main areas of interest:

  • The server-side code under src/ and app/config configuration.
  • The JavaScript and CSS (SCSS) code under assets/.
  • The Webpack Encore configuration for client and server-side rendering at webpack.config.js and webpack.config.serverside.js.

Note that you won't need to run an external node server to do server-side rendering, as we are using PhpExecJs although ReactBundle would make it possible if we neeeded that setup.

If you are interested on this, please also check out React on Rails by Shakacode, as we are here basically replicating their fantastic job.

How to run it

Requirements: you need a recent version of node, and Webpack installed (you can install it with npm install -g webpack webpack-dev-server).

git clone https://github.com/Limenius/symfony-react-sandbox.git
cd symfony-react-sandbox
composer install
npm install # or yarn install if you use yarn

Configure your database editing .env and setting your database name, user and password. Then, create the schema and load fixtures:

bin/console doctrine:database:create --if-not-exists
bin/console doctrine:schema:create
bin/console doctrine:fixtures:load

This should populate your database with some tasty sample data.

For convenience, we have included public and private encryption keys in config/jwt directory. Their password is "potato". Of course, if you plan to use this in a production environment, please generate new keys with a different password :). There is a file called .env.dist that you can rename to .env, or copy the relevant parts to your .env:

JWT_PRIVATE_KEY_PATH=config/jwt/private.pem
JWT_PUBLIC_KEY_PATH=config/jwt/public.pem
JWT_PASSPHRASE=potato

And then, run a live server with Webpack hot-reloading of assets:

  • Building the server-side react Webpack bundle.

    ./node_modules/.bin/encore dev --config webpack.config.serverside.js --watch

or simply npm run webpack-serverside

  • And, In a different terminal/screen/tmux, the hot-reloading webpack server for the client assets:

    ./node_modules/.bin/encore dev-server

or simply npm run webpack-dev

(Note that you need to load the resulting build bundle in your template, as we do here)

  • Also, you may want to run the Symfony server:

    bin/console server:start

After this, visit http://127.0.0.1:8000.

Why Webpack?

Webpack is used to generate two separate JavaScript bundles (that share some code). One is meant for its inclusion as context for the server-side rendering. The second will contain your client-side frontend code. Given this, we can write Twig code to render React components like, for instance:

{{ react_component('RecipesApp', {'props': props}) }}

And it will be rendered both client and server-side.

We have provided what we think are sensible defaults for both bundles, and also for the package.json dependencies, like Twitter Bootstrap and such. Feel free to adapt them to your needs.

Please note that if you are copying webpack.config.js or webpack.config.server.js to your project it is very likely that you will need also .babelrc to have Babel presets (used to transform React JSX and modern JavaScript to plain old JavaScript)

Why Server-Side rendering?

If you enable server-side rendering along with client-side rendering of components (this is the default) your React components will be rendered directly as HTML by Twig and then, when the client-side code is run, React will identify the already rendered HTML and it won't render it again until is needed. Instead, it will silently take control over it and re-render it only when it is needed.

This can be vital for some applications for SEO purposes or where a bot has to scrape the content (Facebook bot scraping og: tags for instance), but also is great for quick page-loads and to provide the content to users with JavaScript disabled (if there is any left, or if you have plans to build progressive web applications).

You can configure ReactBundle to have server-side, client-side or both. See the bundle documentation for more information.

How it works

When you render a React Component in a Twig template with {{ react_component('RecipesApp', {'props': props}) }} with client and server-side rendering enabled (this is the default setting), ReactBundle will render a <div> that will serve as container of the component.

Inside of it, the bundle will place all the HTML code that results of evaluating your component. It will do so by calling PhpExecJs, using your server-bundle, generated by Webpack as context, and retrieving the outcome.

When your client-side JavaScript runs, React will find this <div> tag and will recognize it as the result of rendering a component. It won't render it again (unless the evaluation of your client-side code differs), but it will take control of it, and, depending on the actions performed by the user, it will re-render the component dynamically.

Walkthrough

We have set-up a simple application. A recipes App with master-detail views. In the actions of the controller under src/AppBundle/Controller/RecipeController.php you will find two types of actions.

Actions that render Twig templates.

These actions retrieve the recipes that will be shown in the page and pass them as a JSON string to template.

In the Twig templates under /app/Resouces/views/recipe/ you will find templates with code like tthis one:

{{ react_component('RecipesApp', {'props': props}) }}

This Twig function, provided by ReactBundle, will render the React component RecipesApp in server and client modes.

Actions that render JSON responses.

These actions act as an API and will be used by the client-side React code to retrieve data as needed when navigating to other pages without reloading the pages.

To simplify things we don't use FOSRestBundle here, but feel free to use it to build your API.

Globally expose your React components

In order to make your React components accessible to ReactBundle, you need to register them. We are using for this purpose the npm package of the React On Rails, (that can be used outside the Ruby world).

Take a look at the assets/js/recipes/startup/registration.js file:

Server side:

import ReactOnRails from 'react-on-rails'
import RecipesApp from './RecipesApp'

ReactOnRails.register({ RecipesApp })

JavaScript code organization for isomorphic apps

Note that in most cases you will be sharing almost all of your code between your client-side component and its server-side homologous, but while your client-code comes with no surprises, in the server side you will probably have to play a bit with react-router in order to let it know the location and set up the routing history. This is a common issue in isomorphic applications. You can find examples on how to do this all along the Internet, but also in the file assets/js/recipes/RecipesApp.js.

Note that React on Rails passes a second context parameter to the root container that includes the property serverSide:

export default (initialProps, context) => {

    if (context.serverSide) {
        /...
    } else {
        /...
    }

Redux example

There is a working example using Redux at assets/js/recipes-redux/, and available at the URI /redux/.

Note that the presentational components of both versions are shared, as they don't know about Redux.

Liform example

There is also an example of working with forms using LiformBundle, so Symfony forms are serialized into json-schema, and then generated automatically in React, and can be validated against the generated schema. The idea is similar as what $form->createView() does, but for APIs.

This example can be accessed at the URI /admin/liform/.

Usage with JWT

This sandbox uses LexikJWTAuthenticationBundle to handle authentication in the admin area.

If you don't plan to use server side rendering in private areas, using JWT is straightforward. However, as this is a sandbox, so a place to try things, we have provided an example that works also with server side rendering. This involves setting the JWT token in a cookie after the login and extracting the token and validating it in the controller that loads the admin panel.

The relevant pieces of code involved are here and here.

Note that if you plan to copy and paste this sandbox and use it for something serious, you should regenerate the crypto keys following the documentation of LexikJWTAuthenticationBundle.

Server side rendering modes

This library supports two modes of using server-side rendering:

  • Using PhpExecJs to auto-detect a JavaScript environment (call node.js via terminal command or use V8Js PHP) and run JavaScript code through it.

  • Using an external node.js server (Example. It will use a dummy server, that knows nothing about your logic to render React for you. Introduces more operational complexity (you have to keep the node server running, which is not a big deal anyways).

Currently, the best option is to use an external server in production, since having V8js is rather hard to compile. However, if you can compile it or your distribution/OS has good packages, it is a very good option if you enable caching, as we will see in the next section.

Cache

if in your config.prod.yaml or config/packages/prod/limenius_react.yaml you add the following configuration, and you have V8js installed, this bundle will be much faster:

limenius_react:
    serverside_rendering:
        cache:
            enabled: true
            # name of your app, it is the key of the cache where the snapshot will be stored.
            key: "recipes_app"

After the first page render, this will store a snapshot of the JS virtual machine V8js in the cache, so in subsequent visits, your whole JavaScript app doesn't need to be processed again, just the particular component that you want to render.

With the cache enabled, if you change code of your JS app, you will need to clear the cache.

Credits

This project is heavily inspired by the great React on Rails, and also makes use of its JavaScript package.

symfony-react-sandbox's People

Contributors

alexandrekilian avatar bornap avatar dependabot[bot] avatar enleur avatar hkdobrev avatar joshhornby avatar jrmyio avatar kix avatar mablae avatar marcomoscardini avatar nacmartin avatar pamuche avatar teameh avatar victoriaq avatar yannickfricke avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

symfony-react-sandbox's Issues

DB modifications not refreshing object

I'll explain the process starting in the beginning of all hoping to get an answer.

First of all, can I get a more specif explanation about the server-side and client-side? For my readings till here, doesn't react render views? If so, why having a server side?

Then, a more concrete example about this project. I can install it with no problems and also run it. After I run it. When I first enter the homepage it brings me all the recipes (i could see in the ajax request). Lets say I do alter some recipe in the db. When I enter that specific recipe (showAction for the say) I can see the modifications I made, but when I do come back for the homepage (not back button nor F5 to refresh) it shows all the recipes, but the recipe i've modify still is the old one, without the changes. Can I get an explanation about this?

Thanks in advance

Load fixtures exception

While I was following "How to run it" in readme.md (SF3 branch - clean cloned repo) I've encountered an exception when executed command php bin/console hautelook:fixtures:load .

[console] Error thrown while running command "hautelook:fixtures:load". Message: "Notice: Undefined offset: -1" ["error" => Symfony\Component\Debug\Exception\ContextErrorException { …},"command" => "hautelook:fixtures:load","message" => "Notice: Undefined offset: -1"] []

[Symfony\Component\Debug\Exception\ContextErrorException]
Notice: Undefined offset: -1

Issue hofixed by replacing description's value (<paragraph()>) with empty string inside recipes.yml.

[Question] Running this on Docker + nginx

Hello,

I'm a back-end developer inexperienced when it comes to webpack and React. I have set up a Docker compose file with 3 containers: db, nginx and app. In app I'm running supervisor which then runs php-fpm, yarn run webpack-serverside and yarn run webpack-dev. The nginx configuration is more or less standard Symfony 4 one from documentation.

What's working: Symfony + server-side rendering (apart from some array to string conversion notices, fixed with this Limenius/ReactRenderer@d486304). What's not working: client-side rendering, I get connection refused errors for public/build stuff (I guess proxy_pass is needed?), which doesn't seem to be generated in the first place - there's only manifest.json.

What am I missing?

npm errors when install

Fresh installation outputs "WARN"s, and later list returns lot of errs.

$ npm -v
5.6.0
$ node -v
v8.9.4
npm install
npm WARN [email protected] requires a peer of ajv@^6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of react@^15.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] No repository field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm list --depth=0
[email protected] /var/www/projects/symfony-react-sandbox
├── @symfony/[email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected]

npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! peer dep missing: react@^15.0.0, required by [email protected]
npm ERR! peer dep missing: ajv@^6.0.0, required by [email protected]

Liform action throws a 500

The exception I get is this:

Could not find a transformer for any of these types (datetime, form)

500 Internal Server Error - TransformerException

Here's a stack trace:

in vendor/limenius/liform/src/Limenius/Liform/Resolver.php at line 54   -
            ];
        }
        throw new TransformerException(
            sprintf(
                'Could not find a transformer for any of these types (%s)',
                implode(', ', $types)
at Resolver ->resolve (object(Form)) 

in vendor/limenius/liform/src/Limenius/Liform/Transformer/CompoundTransformer.php at line 19   +
at CompoundTransformer ->transform (object(Form), array(), null) 

in vendor/limenius/liform/src/Limenius/Liform/Liform.php at line 32   +
at Liform ->transform (object(Form)) 

in src/AppBundle/Controller/RecipeController.php at line 123   +
at RecipeController ->liformAction (object(Request))

at call_user_func_array (array(object(RecipeController), 'liformAction'), array(object(Request))) 

in vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php at line 153   +
at HttpKernel ->handleRaw (object(Request), '1') 

in vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php at line 68   +
at HttpKernel ->handle (object(Request), '1', true) 

in vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php at line 169   +
at Kernel ->handle (object(Request)) 

in web/app_dev.php at line 30   +
at require ('/Users/kix/Documents/Code/symfony-react-sandbox/web/app_dev.php') 

in vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config/router_dev.php at line 40   +

Also, the LiformBundle dep should be bumped due to changes in Limenius/LiformBundle@237908e

nacmartin/phpexecjs

I have read the docs on nacmartin/phpexecjs site,

I couldn't get v8js running as an extension on wamp, however the EXternalRuntime doesn't seem to fire either

as the system is still crashing with

An exception has been thrown during the rendering of a template ("PhpExecJs: Cannot autodetect any JavaScript runtime") in recipe\home.html.twig at line 4. 

Production is not working (fixed on my own repo)

i working on a symfony project (was on 2.8) since some month now, and wanted to do one with React.
now i have created a 3.3 project (because asset manifest.json is only handled in 3.3)
succefully installed your ReactBundle and configure to get a working SSR, But while trying production result i got a cannot call function of undefined (only on prod)
to get a prod app.js you have to add this script
"build:client": "encore production"
i tryed this script in a clone of your repo and its apear that you got the same problem on a production test.
i finaly solve the problem by remove this 3 dependency in package.json

"webpack": "^3.2.0",
"webpack-dev-server": "^2.4.5",
"webpack-merge": "^4.1.0"

i'm pretty new with react, but i guess "webpack" isnt necessary since we are using "encore" who seem do the same things ?

and finaly this are the dependency i use actualy where everything work well for my testing.

"dependencies": {
"jquery": "^3.2.1",
"prop-types": "^15.5.10",
"react": "^15.6.1",
"react-dom": "^15.6.1",
"react-on-rails": "^8.0.3",
"react-redux": "^5.0.5",
"react-router-dom": "^4.1.1",
"redux": "^3.7.2",
"redux-thunk": "^2.2.0"
},
"devDependencies": {
"@symfony/webpack-encore": "^0.10.0",
"babel-cli": "^6.24.1",
"babel-preset-es2015": "^6.24.1",
"babel-preset-react": "^6.24.1",
"sass-loader": "^6.0.6"
}

Thanks again for this great symfony react Bundle, (before i used plain javascript before app.js to add baseurl by windows.valueIWantShare ...)
but this trick dont work for SSR since javascript from my twig isnt read on a SSR ...

also note that using es2017 instead of es2015 will result in a bug where initialProps and context will be null ... and i dont understand why.

install errors

Hi I'm new to npm, but looking at your online example it was so fast and smooth, I would really like to use this

I had the following issues

webpack --config webpack.config.serverside.js --watch
Hash: d8776417341a0c6a817d
Version: webpack 1.13.0
Time: 6500ms
                                 Asset     Size  Chunks             Chunk Names
app/Resources/webpack/server-bundle.js  1.57 MB       0  [emitted]  main
   [0] multi main 28 bytes {0} [built]
    + 242 hidden modules

ERROR in ./~/react-on-rails/node_package/lib/ReactOnRails.js
Module not found: Error: Cannot resolve module 'babel-runtime/core-js/object/assign' in C:\wamp\www\symfony-react-sandbox\node_modules\react-on-rails\node_package\lib
 @ ./~/react-on-rails/node_package/lib/ReactOnRails.js 7:14-60

ERROR in ./~/react-on-rails/node_package/lib/ReactOnRails.js
Module not found: Error: Cannot resolve module 'babel-runtime/core-js/json/stringify' in C:\wamp\www\symfony-react-sandbox\node_modules\react-on-rails\node_package\lib
 @ ./~/react-on-rails/node_package/lib/ReactOnRails.js 11:17-64

ERROR in ./~/react-on-rails/node_package/lib/ReactOnRails.js
Module not found: Error: Cannot resolve module 'babel-runtime/core-js/object/keys' in C:\wamp\www\symfony-react-sandbox\node_modules\react-on-rails\node_package\lib
 @ ./~/react-on-rails/node_package/lib/ReactOnRails.js 15:12-56

ERROR in ./~/react-on-rails/node_package/lib/clientStartup.js
Module not found: Error: Cannot resolve module 'babel-runtime/core-js/json/stringify' in C:\wamp\www\symfony-react-sandbox\node_modules\react-on-rails\node_package\lib
 @ ./~/react-on-rails/node_package/lib/clientStartup.js 7:17-64

ERROR in ./~/react-on-rails/node_package/lib/StoreRegistry.js
Module not found: Error: Cannot resolve module 'babel-runtime/core-js/array/from' in C:\wamp\www\symfony-react-sandbox\node_modules\react-on-rails\node_package\lib
 @ ./~/react-on-rails/node_package/lib/StoreRegistry.js 7:12-55

ERROR in ./~/react-on-rails/node_package/lib/StoreRegistry.js
Module not found: Error: Cannot resolve module 'babel-runtime/core-js/object/keys' in C:\wamp\www\symfony-react-sandbox\node_modules\react-on-rails\node_package\lib
 @ ./~/react-on-rails/node_package/lib/StoreRegistry.js 11:12-56

ERROR in ./~/react-on-rails/node_package/lib/StoreRegistry.js
Module not found: Error: Cannot resolve module 'babel-runtime/core-js/map' in C:\wamp\www\symfony-react-sandbox\node_modules\react-on-rails\node_package\lib
 @ ./~/react-on-rails/node_package/lib/StoreRegistry.js 15:11-47

ERROR in ./~/react-on-rails/node_package/lib/buildConsoleReplay.js
Module not found: Error: Cannot resolve module 'babel-runtime/core-js/json/stringify' in C:\wamp\www\symfony-react-sandbox\node_modules\react-on-rails\node_package\lib
 @ ./~/react-on-rails/node_package/lib/buildConsoleReplay.js 7:17-64

ERROR in ./~/react-on-rails/node_package/lib/ComponentRegistry.js
Module not found: Error: Cannot resolve module 'babel-runtime/core-js/array/from' in C:\wamp\www\symfony-react-sandbox\node_modules\react-on-rails\node_package\lib
 @ ./~/react-on-rails/node_package/lib/ComponentRegistry.js 7:12-55

ERROR in ./~/react-on-rails/node_package/lib/ComponentRegistry.js
Module not found: Error: Cannot resolve module 'babel-runtime/core-js/object/keys' in C:\wamp\www\symfony-react-sandbox\node_modules\react-on-rails\node_package\lib
 @ ./~/react-on-rails/node_package/lib/ComponentRegistry.js 11:12-56

ERROR in ./~/react-on-rails/node_package/lib/ComponentRegistry.js
Module not found: Error: Cannot resolve module 'babel-runtime/core-js/map' in C:\wamp\www\symfony-react-sandbox\node_modules\react-on-rails\node_package\lib
 @ ./~/react-on-rails/node_package/lib/ComponentRegistry.js 15:11-47

ERROR in ./~/react-on-rails/node_package/lib/serverRenderReactComponent.js
Module not found: Error: Cannot resolve module 'babel-runtime/core-js/json/stringify' in C:\wamp\www\symfony-react-sandbox\node_modules\react-on-rails\node_package\lib
 @ ./~/react-on-rails/node_package/lib/serverRenderReactComponent.js 7:17-64

and then when I tried webpack webpack-dev-server --progress --colors --config webpack.config.js

 webpack webpack-dev-server --progress --colors --config webpack.config.js
Webpack dev build                                                                                                                                                                                                   Hash: 31f60083676be72b91c3
Version: webpack 1.13.0
Time: 11731ms
                                 Asset     Size  Chunks             Chunk Names
                      client-bundle.js  7.44 MB       0  [emitted]  main
  f4769f9bdb7466be65088239c12046d1.eot  20.1 kB          [emitted]
 fa2772327f55d8198301fdb8bcfc8158.woff  23.4 kB          [emitted]
  e18bbf611f2a2e43afc071aa2f4e1512.ttf  45.4 kB          [emitted]
  89889688147bd7575d6327160d64e760.svg   109 kB          [emitted]
448c34a56d699c29117adc64c43affeb.woff2    18 kB          [emitted]
                  stylesheets/main.css   152 kB       0  [emitted]  main
                     img\carbonara.jpg  24.6 kB          [emitted]
                       img\falafel.jpg  23.5 kB          [emitted]
                         img\sushi.jpg  24.6 kB          [emitted]
                        img\paella.jpg  24.7 kB          [emitted]
   [0] multi main 40 bytes {0} [built]
    + 532 hidden modules

WARNING in ./~/express/lib/view.js
Critical dependencies:
78:29-56 the request of a dependency is an expression
 @ ./~/express/lib/view.js 78:29-56

ERROR in (webpack)-dev-server/lib/Server.js
Module not found: Error: Cannot resolve module 'fs' in C:\wamp\www\symfony-react-sandbox\node_modules\webpack-dev-server\lib
 @ (webpack)-dev-server/lib/Server.js 1:9-22

ERROR in (webpack)-dev-server/~/serve-index/index.js
Module not found: Error: Cannot resolve module 'fs' in C:\wamp\www\symfony-react-sandbox\node_modules\webpack-dev-server\node_modules\serve-index
 @ (webpack)-dev-server/~/serve-index/index.js 20:9-22

ERROR in ./~/react-on-rails/node_package/lib/ReactOnRails.js
Module not found: Error: Cannot resolve module 'babel-runtime/core-js/object/assign' in C:\wamp\www\symfony-react-sandbox\node_modules\react-on-rails\node_package\lib
 @ ./~/react-on-rails/node_package/lib/ReactOnRails.js 7:14-60

ERROR in ./~/react-on-rails/node_package/lib/ReactOnRails.js
Module not found: Error: Cannot resolve module 'babel-runtime/core-js/json/stringify' in C:\wamp\www\symfony-react-sandbox\node_modules\react-on-rails\node_package\lib
 @ ./~/react-on-rails/node_package/lib/ReactOnRails.js 11:17-64

ERROR in ./~/react-on-rails/node_package/lib/ReactOnRails.js
Module not found: Error: Cannot resolve module 'babel-runtime/core-js/object/keys' in C:\wamp\www\symfony-react-sandbox\node_modules\react-on-rails\node_package\lib
 @ ./~/react-on-rails/node_package/lib/ReactOnRails.js 15:12-56

ERROR in ./~/react-on-rails/node_package/lib/clientStartup.js
Module not found: Error: Cannot resolve module 'babel-runtime/core-js/json/stringify' in C:\wamp\www\symfony-react-sandbox\node_modules\react-on-rails\node_package\lib
 @ ./~/react-on-rails/node_package/lib/clientStartup.js 7:17-64

ERROR in ./~/react-on-rails/node_package/lib/serverRenderReactComponent.js
Module not found: Error: Cannot resolve module 'babel-runtime/core-js/json/stringify' in C:\wamp\www\symfony-react-sandbox\node_modules\react-on-rails\node_package\lib
 @ ./~/react-on-rails/node_package/lib/serverRenderReactComponent.js 7:17-64

ERROR in ./~/react-on-rails/node_package/lib/ComponentRegistry.js
Module not found: Error: Cannot resolve module 'babel-runtime/core-js/array/from' in C:\wamp\www\symfony-react-sandbox\node_modules\react-on-rails\node_package\lib
 @ ./~/react-on-rails/node_package/lib/ComponentRegistry.js 7:12-55

ERROR in ./~/react-on-rails/node_package/lib/ComponentRegistry.js
Module not found: Error: Cannot resolve module 'babel-runtime/core-js/object/keys' in C:\wamp\www\symfony-react-sandbox\node_modules\react-on-rails\node_package\lib
 @ ./~/react-on-rails/node_package/lib/ComponentRegistry.js 11:12-56

ERROR in ./~/react-on-rails/node_package/lib/ComponentRegistry.js
Module not found: Error: Cannot resolve module 'babel-runtime/core-js/map' in C:\wamp\www\symfony-react-sandbox\node_modules\react-on-rails\node_package\lib
 @ ./~/react-on-rails/node_package/lib/ComponentRegistry.js 15:11-47

ERROR in ./~/react-on-rails/node_package/lib/StoreRegistry.js
Module not found: Error: Cannot resolve module 'babel-runtime/core-js/array/from' in C:\wamp\www\symfony-react-sandbox\node_modules\react-on-rails\node_package\lib
 @ ./~/react-on-rails/node_package/lib/StoreRegistry.js 7:12-55

ERROR in ./~/react-on-rails/node_package/lib/StoreRegistry.js
Module not found: Error: Cannot resolve module 'babel-runtime/core-js/object/keys' in C:\wamp\www\symfony-react-sandbox\node_modules\react-on-rails\node_package\lib
 @ ./~/react-on-rails/node_package/lib/StoreRegistry.js 11:12-56

ERROR in ./~/react-on-rails/node_package/lib/StoreRegistry.js
Module not found: Error: Cannot resolve module 'babel-runtime/core-js/map' in C:\wamp\www\symfony-react-sandbox\node_modules\react-on-rails\node_package\lib
 @ ./~/react-on-rails/node_package/lib/StoreRegistry.js 15:11-47

ERROR in ./~/react-on-rails/node_package/lib/buildConsoleReplay.js
Module not found: Error: Cannot resolve module 'babel-runtime/core-js/json/stringify' in C:\wamp\www\symfony-react-sandbox\node_modules\react-on-rails\node_package\lib
 @ ./~/react-on-rails/node_package/lib/buildConsoleReplay.js 7:17-64

ERROR in (webpack)-dev-server/~/sockjs/lib/sockjs.js
Module not found: Error: Cannot resolve module 'fs' in C:\wamp\www\symfony-react-sandbox\node_modules\webpack-dev-server\node_modules\sockjs\lib
 @ (webpack)-dev-server/~/sockjs/lib/sockjs.js 10:7-20

ERROR in (webpack)-dev-server/~/sockjs/lib/webjs.js
Module not found: Error: Cannot resolve module 'fs' in C:\wamp\www\symfony-react-sandbox\node_modules\webpack-dev-server\node_modules\sockjs\lib
 @ (webpack)-dev-server/~/sockjs/lib/webjs.js 9:7-20

ERROR in ./~/express/lib/request.js
Module not found: Error: Cannot resolve module 'net' in C:\wamp\www\symfony-react-sandbox\node_modules\express\lib
 @ ./~/express/lib/request.js 18:11-25

ERROR in (webpack)-dev-server/~/webpack-dev-middleware/~/mime/mime.js
Module not found: Error: Cannot resolve module 'fs' in C:\wamp\www\symfony-react-sandbox\node_modules\webpack-dev-server\node_modules\webpack-dev-middleware\node_modules\mime
 @ (webpack)-dev-server/~/webpack-dev-middleware/~/mime/mime.js 2:9-22

ERROR in ./~/express/lib/view.js
Module not found: Error: Cannot resolve module 'fs' in C:\wamp\www\symfony-react-sandbox\node_modules\express\lib
 @ ./~/express/lib/view.js 18:9-22

ERROR in (webpack)-dev-server/~/webpack-dev-middleware/~/mime/types.json
Module parse failed: C:\wamp\www\symfony-react-sandbox\node_modules\webpack-dev-server\node_modules\webpack-dev-middleware\node_modules\mime\types.json Unexpected token (1:27)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected token (1:27)
    at Parser.pp.raise (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:920:13)
    at Parser.pp.unexpected (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1483:8)
    at Parser.pp.semicolon (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1462:73)
    at Parser.pp.parseExpressionStatement (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1976:8)
    at Parser.pp.parseStatement (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1754:188)
    at Parser.pp.parseBlock (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1991:21)
    at Parser.pp.parseStatement (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1735:19)
    at Parser.pp.parseTopLevel (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1648:21)
    at Parser.parse (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1616:17)
    at Object.parse (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:882:44)
    at Parser.parse (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\lib\Parser.js:902:15)
    at DependenciesBlock.<anonymous> (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\lib\NormalModule.js:104:16)
    at DependenciesBlock.onModuleBuild (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\webpack-core\lib\NormalModuleMixin.js:310:10)
    at nextLoader (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\webpack-core\lib\NormalModuleMixin.js:275:25)
    at C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\webpack-core\lib\NormalModuleMixin.js:259:5
    at Storage.finished (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:38:16)
    at C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\enhanced-resolve\node_modules\graceful-fs\graceful-fs.js:78:16
    at fs.js:336:14
    at C:\wamp\www\symfony-react-sandbox\node_modules\copy-webpack-plugin\node_modules\fs-extra\node_modules\graceful-fs\graceful-fs.js:43:10
    at C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\enhanced-resolve\node_modules\graceful-fs\graceful-fs.js:43:10
    at FSReqWrap.oncomplete (fs.js:99:15)
 @ (webpack)-dev-server/~/webpack-dev-middleware/~/mime/mime.js 87:12-35

ERROR in ./~/express/~/send/index.js
Module not found: Error: Cannot resolve module 'fs' in C:\wamp\www\symfony-react-sandbox\node_modules\express\node_modules\send
 @ ./~/express/~/send/index.js 25:9-22

ERROR in (webpack)-dev-server/~/compression/~/compressible/~/mime-db/db.json
Module parse failed: C:\wamp\www\symfony-react-sandbox\node_modules\webpack-dev-server\node_modules\compression\node_modules\compressible\node_modules\mime-db\db.json Unexpected token (2:40)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected token (2:40)
    at Parser.pp.raise (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:920:13)
    at Parser.pp.unexpected (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1483:8)
    at Parser.pp.semicolon (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1462:73)
    at Parser.pp.parseExpressionStatement (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1976:8)
    at Parser.pp.parseStatement (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1754:188)
    at Parser.pp.parseBlock (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1991:21)
    at Parser.pp.parseStatement (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1735:19)
    at Parser.pp.parseTopLevel (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1648:21)
    at Parser.parse (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1616:17)
    at Object.parse (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:882:44)
    at Parser.parse (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\lib\Parser.js:902:15)
    at DependenciesBlock.<anonymous> (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\lib\NormalModule.js:104:16)
    at DependenciesBlock.onModuleBuild (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\webpack-core\lib\NormalModuleMixin.js:310:10)
    at nextLoader (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\webpack-core\lib\NormalModuleMixin.js:275:25)
    at C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\webpack-core\lib\NormalModuleMixin.js:259:5
    at Storage.finished (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:38:16)
    at C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\enhanced-resolve\node_modules\graceful-fs\graceful-fs.js:78:16
    at fs.js:336:14
    at C:\wamp\www\symfony-react-sandbox\node_modules\copy-webpack-plugin\node_modules\fs-extra\node_modules\graceful-fs\graceful-fs.js:43:10
    at C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\enhanced-resolve\node_modules\graceful-fs\graceful-fs.js:43:10
    at FSReqWrap.oncomplete (fs.js:99:15)
 @ (webpack)-dev-server/~/compression/~/compressible/~/mime-db/index.js 11:17-37

ERROR in (webpack)-dev-server/~/serve-index/~/http-errors/~/statuses/codes.json
Module parse failed: C:\wamp\www\symfony-react-sandbox\node_modules\webpack-dev-server\node_modules\serve-index\node_modules\http-errors\node_modules\statuses\codes.json Unexpected token (2:7)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected token (2:7)
    at Parser.pp.raise (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:920:13)
    at Parser.pp.unexpected (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1483:8)
    at Parser.pp.semicolon (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1462:73)
    at Parser.pp.parseExpressionStatement (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1976:8)
    at Parser.pp.parseStatement (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1754:188)
    at Parser.pp.parseBlock (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1991:21)
    at Parser.pp.parseStatement (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1735:19)
    at Parser.pp.parseTopLevel (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1648:21)
    at Parser.parse (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1616:17)
    at Object.parse (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:882:44)
    at Parser.parse (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\lib\Parser.js:902:15)
    at DependenciesBlock.<anonymous> (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\lib\NormalModule.js:104:16)
    at DependenciesBlock.onModuleBuild (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\webpack-core\lib\NormalModuleMixin.js:310:10)
    at nextLoader (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\webpack-core\lib\NormalModuleMixin.js:275:25)
    at C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\webpack-core\lib\NormalModuleMixin.js:259:5
    at Storage.finished (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:38:16)
    at C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\enhanced-resolve\node_modules\graceful-fs\graceful-fs.js:78:16
    at fs.js:336:14
    at C:\wamp\www\symfony-react-sandbox\node_modules\copy-webpack-plugin\node_modules\fs-extra\node_modules\graceful-fs\graceful-fs.js:43:10
    at C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\enhanced-resolve\node_modules\graceful-fs\graceful-fs.js:43:10
    at FSReqWrap.oncomplete (fs.js:99:15)
 @ (webpack)-dev-server/~/serve-index/~/http-errors/~/statuses/index.js 2:12-35

ERROR in (webpack)-dev-server/~/serve-index/~/mime-types/~/mime-db/db.json
Module parse failed: C:\wamp\www\symfony-react-sandbox\node_modules\webpack-dev-server\node_modules\serve-index\node_modules\mime-types\node_modules\mime-db\db.json Unexpected token (2:40)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected token (2:40)
    at Parser.pp.raise (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:920:13)
    at Parser.pp.unexpected (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1483:8)
    at Parser.pp.semicolon (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1462:73)
    at Parser.pp.parseExpressionStatement (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1976:8)
    at Parser.pp.parseStatement (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1754:188)
    at Parser.pp.parseBlock (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1991:21)
    at Parser.pp.parseStatement (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1735:19)
    at Parser.pp.parseTopLevel (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1648:21)
    at Parser.parse (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1616:17)
    at Object.parse (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:882:44)
    at Parser.parse (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\lib\Parser.js:902:15)
    at DependenciesBlock.<anonymous> (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\lib\NormalModule.js:104:16)
    at DependenciesBlock.onModuleBuild (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\webpack-core\lib\NormalModuleMixin.js:310:10)
    at nextLoader (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\webpack-core\lib\NormalModuleMixin.js:275:25)
    at C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\webpack-core\lib\NormalModuleMixin.js:259:5
    at Storage.finished (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:38:16)
    at C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\enhanced-resolve\node_modules\graceful-fs\graceful-fs.js:78:16
    at fs.js:336:14
    at C:\wamp\www\symfony-react-sandbox\node_modules\copy-webpack-plugin\node_modules\fs-extra\node_modules\graceful-fs\graceful-fs.js:43:10
    at C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\enhanced-resolve\node_modules\graceful-fs\graceful-fs.js:43:10
    at FSReqWrap.oncomplete (fs.js:99:15)
 @ (webpack)-dev-server/~/serve-index/~/mime-types/~/mime-db/index.js 11:17-37

ERROR in ./~/express/~/etag/index.js
Module not found: Error: Cannot resolve module 'fs' in C:\wamp\www\symfony-react-sandbox\node_modules\express\node_modules\etag
 @ ./~/express/~/etag/index.js 22:12-25

ERROR in (webpack)-dev-server/~/sockjs/~/faye-websocket/lib/faye/websocket/client.js
Module not found: Error: Cannot resolve module 'net' in C:\wamp\www\symfony-react-sandbox\node_modules\webpack-dev-server\node_modules\sockjs\node_modules\faye-websocket\lib\faye\websocket
 @ (webpack)-dev-server/~/sockjs/~/faye-websocket/lib/faye/websocket/client.js 2:13-27

ERROR in (webpack)-dev-server/~/sockjs/~/faye-websocket/lib/faye/websocket/client.js
Module not found: Error: Cannot resolve module 'tls' in C:\wamp\www\symfony-react-sandbox\node_modules\webpack-dev-server\node_modules\sockjs\node_modules\faye-websocket\lib\faye\websocket
 @ (webpack)-dev-server/~/sockjs/~/faye-websocket/lib/faye/websocket/client.js 3:13-27

ERROR in ./~/express/~/send/~/destroy/index.js
Module not found: Error: Cannot resolve module 'fs' in C:\wamp\www\symfony-react-sandbox\node_modules\express\node_modules\send\node_modules\destroy
 @ ./~/express/~/send/~/destroy/index.js 14:17-30

ERROR in ./~/express/~/send/~/mime/mime.js
Module not found: Error: Cannot resolve module 'fs' in C:\wamp\www\symfony-react-sandbox\node_modules\express\node_modules\send\node_modules\mime
 @ ./~/express/~/send/~/mime/mime.js 2:9-22

ERROR in (webpack)-dev-server/~/compression/~/accepts/~/mime-types/~/mime-db/db.json
Module parse failed: C:\wamp\www\symfony-react-sandbox\node_modules\webpack-dev-server\node_modules\compression\node_modules\accepts\node_modules\mime-types\node_modules\mime-db\db.json Unexpected token (2:40)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected token (2:40)
    at Parser.pp.raise (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:920:13)
    at Parser.pp.unexpected (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1483:8)
    at Parser.pp.semicolon (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1462:73)
    at Parser.pp.parseExpressionStatement (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1976:8)
    at Parser.pp.parseStatement (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1754:188)
    at Parser.pp.parseBlock (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1991:21)
    at Parser.pp.parseStatement (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1735:19)
    at Parser.pp.parseTopLevel (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1648:21)
    at Parser.parse (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1616:17)
    at Object.parse (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:882:44)
    at Parser.parse (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\lib\Parser.js:902:15)
    at DependenciesBlock.<anonymous> (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\lib\NormalModule.js:104:16)
    at DependenciesBlock.onModuleBuild (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\webpack-core\lib\NormalModuleMixin.js:310:10)
    at nextLoader (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\webpack-core\lib\NormalModuleMixin.js:275:25)
    at C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\webpack-core\lib\NormalModuleMixin.js:259:5
    at Storage.finished (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:38:16)
    at C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\enhanced-resolve\node_modules\graceful-fs\graceful-fs.js:78:16
    at fs.js:336:14
    at C:\wamp\www\symfony-react-sandbox\node_modules\copy-webpack-plugin\node_modules\fs-extra\node_modules\graceful-fs\graceful-fs.js:43:10
    at C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\enhanced-resolve\node_modules\graceful-fs\graceful-fs.js:43:10
    at FSReqWrap.oncomplete (fs.js:99:15)
 @ (webpack)-dev-server/~/compression/~/accepts/~/mime-types/~/mime-db/index.js 11:17-37

ERROR in ./~/express/~/send/~/statuses/codes.json
Module parse failed: C:\wamp\www\symfony-react-sandbox\node_modules\express\node_modules\send\node_modules\statuses\codes.json Unexpected token (2:7)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected token (2:7)
    at Parser.pp.raise (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:920:13)
    at Parser.pp.unexpected (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1483:8)
    at Parser.pp.semicolon (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1462:73)
    at Parser.pp.parseExpressionStatement (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1976:8)
    at Parser.pp.parseStatement (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1754:188)
    at Parser.pp.parseBlock (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1991:21)
    at Parser.pp.parseStatement (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1735:19)
    at Parser.pp.parseTopLevel (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1648:21)
    at Parser.parse (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1616:17)
    at Object.parse (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:882:44)
    at Parser.parse (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\lib\Parser.js:902:15)
    at DependenciesBlock.<anonymous> (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\lib\NormalModule.js:104:16)
    at DependenciesBlock.onModuleBuild (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\webpack-core\lib\NormalModuleMixin.js:310:10)
    at nextLoader (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\webpack-core\lib\NormalModuleMixin.js:275:25)
    at C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\webpack-core\lib\NormalModuleMixin.js:259:5
    at Storage.finished (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:38:16)
    at C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\enhanced-resolve\node_modules\graceful-fs\graceful-fs.js:78:16
    at fs.js:336:14
    at C:\wamp\www\symfony-react-sandbox\node_modules\copy-webpack-plugin\node_modules\fs-extra\node_modules\graceful-fs\graceful-fs.js:43:10
    at C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\enhanced-resolve\node_modules\graceful-fs\graceful-fs.js:43:10
    at FSReqWrap.oncomplete (fs.js:99:15)
 @ ./~/express/~/send/~/statuses/index.js 2:12-35

ERROR in ./~/express/~/send/~/mime/types.json
Module parse failed: C:\wamp\www\symfony-react-sandbox\node_modules\express\node_modules\send\node_modules\mime\types.json Unexpected token (1:27)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected token (1:27)
    at Parser.pp.raise (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:920:13)
    at Parser.pp.unexpected (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1483:8)
    at Parser.pp.semicolon (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1462:73)
    at Parser.pp.parseExpressionStatement (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1976:8)
    at Parser.pp.parseStatement (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1754:188)
    at Parser.pp.parseBlock (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1991:21)
    at Parser.pp.parseStatement (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1735:19)
    at Parser.pp.parseTopLevel (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1648:21)
    at Parser.parse (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1616:17)
    at Object.parse (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:882:44)
    at Parser.parse (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\lib\Parser.js:902:15)
    at DependenciesBlock.<anonymous> (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\lib\NormalModule.js:104:16)
    at DependenciesBlock.onModuleBuild (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\webpack-core\lib\NormalModuleMixin.js:310:10)
    at nextLoader (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\webpack-core\lib\NormalModuleMixin.js:275:25)
    at C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\webpack-core\lib\NormalModuleMixin.js:259:5
    at Storage.finished (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:38:16)
    at C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\enhanced-resolve\node_modules\graceful-fs\graceful-fs.js:78:16
    at fs.js:336:14
    at C:\wamp\www\symfony-react-sandbox\node_modules\copy-webpack-plugin\node_modules\fs-extra\node_modules\graceful-fs\graceful-fs.js:43:10
    at C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\enhanced-resolve\node_modules\graceful-fs\graceful-fs.js:43:10
    at FSReqWrap.oncomplete (fs.js:99:15)
 @ ./~/express/~/send/~/mime/mime.js 87:12-35

ERROR in ./~/express/~/accepts/~/mime-types/~/mime-db/db.json
Module parse failed: C:\wamp\www\symfony-react-sandbox\node_modules\express\node_modules\accepts\node_modules\mime-types\node_modules\mime-db\db.json Unexpected token (2:40)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected token (2:40)
    at Parser.pp.raise (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:920:13)
    at Parser.pp.unexpected (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1483:8)
    at Parser.pp.semicolon (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1462:73)
    at Parser.pp.parseExpressionStatement (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1976:8)
    at Parser.pp.parseStatement (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1754:188)
    at Parser.pp.parseBlock (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1991:21)
    at Parser.pp.parseStatement (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1735:19)
    at Parser.pp.parseTopLevel (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1648:21)
    at Parser.parse (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1616:17)
    at Object.parse (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:882:44)
    at Parser.parse (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\lib\Parser.js:902:15)
    at DependenciesBlock.<anonymous> (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\lib\NormalModule.js:104:16)
    at DependenciesBlock.onModuleBuild (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\webpack-core\lib\NormalModuleMixin.js:310:10)
    at nextLoader (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\webpack-core\lib\NormalModuleMixin.js:275:25)
    at C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\webpack-core\lib\NormalModuleMixin.js:259:5
    at Storage.finished (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:38:16)
    at C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\enhanced-resolve\node_modules\graceful-fs\graceful-fs.js:78:16
    at fs.js:336:14
    at C:\wamp\www\symfony-react-sandbox\node_modules\copy-webpack-plugin\node_modules\fs-extra\node_modules\graceful-fs\graceful-fs.js:43:10
    at C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\enhanced-resolve\node_modules\graceful-fs\graceful-fs.js:43:10
    at FSReqWrap.oncomplete (fs.js:99:15)
 @ ./~/express/~/accepts/~/mime-types/~/mime-db/index.js 11:17-37

ERROR in ./~/express/~/type-is/~/mime-types/~/mime-db/db.json
Module parse failed: C:\wamp\www\symfony-react-sandbox\node_modules\express\node_modules\type-is\node_modules\mime-types\node_modules\mime-db\db.json Unexpected token (2:40)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected token (2:40)
    at Parser.pp.raise (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:920:13)
    at Parser.pp.unexpected (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1483:8)
    at Parser.pp.semicolon (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1462:73)
    at Parser.pp.parseExpressionStatement (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1976:8)
    at Parser.pp.parseStatement (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1754:188)
    at Parser.pp.parseBlock (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1991:21)
    at Parser.pp.parseStatement (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1735:19)
    at Parser.pp.parseTopLevel (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1648:21)
    at Parser.parse (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:1616:17)
    at Object.parse (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\acorn\dist\acorn.js:882:44)
    at Parser.parse (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\lib\Parser.js:902:15)
    at DependenciesBlock.<anonymous> (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\lib\NormalModule.js:104:16)
    at DependenciesBlock.onModuleBuild (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\webpack-core\lib\NormalModuleMixin.js:310:10)
    at nextLoader (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\webpack-core\lib\NormalModuleMixin.js:275:25)
    at C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\webpack-core\lib\NormalModuleMixin.js:259:5
    at Storage.finished (C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:38:16)
    at C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\enhanced-resolve\node_modules\graceful-fs\graceful-fs.js:78:16
    at fs.js:336:14
    at C:\wamp\www\symfony-react-sandbox\node_modules\copy-webpack-plugin\node_modules\fs-extra\node_modules\graceful-fs\graceful-fs.js:43:10
    at C:\wamp\www\symfony-react-sandbox\node_modules\webpack\node_modules\enhanced-resolve\node_modules\graceful-fs\graceful-fs.js:43:10
    at FSReqWrap.oncomplete (fs.js:99:15)
 @ ./~/express/~/type-is/~/mime-types/~/mime-db/index.js 11:17-37
Child extract-text-webpack-plugin:
        + 7 hidden modules

Could you point me in the right direction to get started

Many thanks,

James

Error occured when execute npm run webpack-dev

Hello,
I am trying to run project on ubuntu but i have the following error :
(npm version: 5.0.3, node version: v8.0.0)

$ npm run webpack-serverside

> [email protected] webpack-serverside /home/acantepie/Workspace/symfony-react-sandbox
> encore dev --config webpack.config.serverside.js --watch

Running webpack ...


Webpack is watching the files…

 WARNING  Compiled with 3 warnings                                                                              20:33:58

 warning  in ./~/ajv/lib/async.js

96:20-33 Critical dependency: the request of a dependency is an expression

 warning  in ./~/ajv/lib/async.js

119:15-28 Critical dependency: the request of a dependency is an expression

 warning  in ./~/ajv/lib/compile/index.js

13:21-34 Critical dependency: the request of a dependency is an expression

    + 974 hidden modules
$ npm run webpack-dev

> [email protected] webpack-dev /home/acantepie/Workspace/symfony-react-sandbox
> webpack-dev-server --hot --inline --progress --colors --config webpack.config.js --port 8080 --output-public-path=http://localhost:8080/assets/build/

/home/acantepie/Workspace/symfony-react-sandbox/node_modules/@symfony/webpack-encore/index.js:11
    throw new Error('Are you trying to require index.js directly?');
    ^

Error: Are you trying to require index.js directly?
    at Object.<anonymous> (/home/acantepie/Workspace/symfony-react-sandbox/node_modules/@symfony/webpack-encore/index.js:11:11)
    at Module._compile (module.js:569:30)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:503:32)
    at tryModuleLoad (module.js:466:12)
    at Function.Module._load (module.js:458:3)
    at Module.require (module.js:513:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/home/acantepie/Workspace/symfony-react-sandbox/webpack.config.js:1:76)
    at Module._compile (module.js:569:30)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] webpack-dev: `webpack-dev-server --hot --inline --progress --colors --config webpack.config.js --port 8080 --output-public-path=http://localhost:8080/assets/build/`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] webpack-dev script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/acantepie/.npm/_logs/2017-06-19T18_42_48_667Z-debug.log

and finally An exception has been thrown during the rendering of a template ("Asset manifest file "/home/acantepie/Workspace/symfony-react-sandbox/web/build/manifest.json" does not exist."). when i request http://127.0.0.1:8000/

Here my npm debug log : https://pastebin.com/uP3a4Ye7 .

Thanx for help,

start npm in windows (fixed)

another issue for launching npm comand in window, in your package.json, you should use
"babel-loader": "7.0",

instead of ^7.0.0,

version above 7.0 throw an error with a path undefined.

location of webpack output path/directory structure

Hello
I am surely missing something, but I cannot find the output path stated in both webpack.config.js and webpack.config.serverside.js
The files are supposed to be at web/build/ and app/Resources/webpack/respectively, but no such directories exist in the repository.
Also, I am following the 'standard' webpack encore directory structure, with an assets and another node-modules directories at the root of my project. This do no seem to be consistent with your setup, or is it?
Thanks

webpack plugin

would it make sense to add a webpack plugin
on serverside webpack config, then render twig templates from a react single page dynamically
new HtmlWebpackPlugin({template: './src/index.twig.html'})
the purpose would make migration from existing twig website easy without many backward compatibilities

Demo is not working

Hi. The Details pages of the demo are not working.
I am not sure if you are working on it right know.
Because first (3 min ago) i got a blank page and just a console error.
Now i get an Symfony Stacktrace.

http://symfony-react.limenius.com/recipe/1

Return value of Limenius\ReactRenderer\Twig\ReactRenderExtension::jsonDecode() must be of the type array, object returned

in src/Controller/RecipeController.php (line 45)
} return $this->render('recipe/recipe.html.twig', [
// A JSON string also works
'props' => $serializer->serialize( ['recipe' => $recipe ], 'json') ]); } /**
* @route("/redux/", name="homepage_redux")

How to handle authentication?

I am wondering how authentication using JWT webtokens would look in a isomorphic app.

I could try to create an example as a PR if we can agree on a basic flow as this is very common topic.

Unused file?

The file client/js/clientEntryPoint.js is referenced only by documentation. Am I correct to assume it is to be ignored? My understanding is that the only file used (both as server and client bundle) is client/js/entryPoint.js

Great work on this bundle!

the requested PHP extension intl is missing from your system

Hello, I'm not that good with PHP and I've tried searching for a solution, but it seems I can't figure it out. If you have time, could you please help me out, thank you <3.

When I composer install I get the following message:

Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Your requirements could not be resolved to an installable set of packages.
  Problem 1
    - Installation request for league/uri 5.3.0 -> satisfiable by league/uri[5.3.0].
    - league/uri 5.3.0 requires ext-intl * -> the requested PHP extension intl is missing from your system.
  Problem 2
    - Installation request for league/uri-components 1.8.2 -> satisfiable by league/uri-components[1.8.2].
    - league/uri-components 1.8.2 requires ext-intl * -> the requested PHP extension intl is missing from your system.
  Problem 3
    - Installation request for league/uri-hostname-parser 1.1.1 -> satisfiable by league/uri-hostname-parser[1.1.1].
  Problem 4
    - Installation request for league/uri-manipulations 1.5.0 -> satisfiable by league/uri-manipulations[1.5.0].
    - league/uri-manipulations 1.5.0 requires ext-intl * -> the requested PHP extension intl is missing from your system.

  To enable extensions, verify that they are enabled in your .ini files:
    - C:\xampp\php\php.ini
  You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

Symfony Roles

i am trying to check if is_granted in the react code to check Symfony roles assigned to a user to see if the user can add a recipe or not, but I can't figure out how. Is there an easy way to do this or will this be needing any additional API parameters?!

An exception has been thrown during the rendering of a template ("Something went wrong evaluating JS code: result: "Error: Could not find store registered with name 'recipesStore'. Registered store names include [ ]. Maybe you forgot to register the store?"") in recipe/recipe.html.twig at line 7.

Hello
I'm trying to run redux version but it's not working.
There is a error:
An exception has been thrown during the rendering of a template ("Something went wrong evaluating JS code:
result: "Error: Could not find store registered with name 'recipesStore'. Registered store names include [ ]. Maybe you forgot to register the store?"") in recipe/recipe.html.twig at line 7.

What did I forget?

Redux: Server rendering not working

Using Redux, the Server rendering isn't working. I get the following error message

SERVER] Exception in rendering!(anonymous function) @ (index):55
(index):56 [SERVER] message: match needs a history or a location(anonymous function) @ (index):56
(index):57 [SERVER] stack: Invariant Violation: match needs a history or a location
    at invariant (/private/var/folders/n2/ld8jc1w55xj757fyvyc0xg4r0000gn/T/nacmartin_phpexecjs57a09385d54899.66181123.js:23465:16)
    at match (/private/var/folders/n2/ld8jc1w55xj757fyvyc0xg4r0000gn/T/nacmartin_phpexecjs57a09385d54899.66181123.js:51536:61)
    at mainNode (/private/var/folders/n2/ld8jc1w55xj757fyvyc0xg4r0000gn/T/nacmartin_phpexecjs57a09385d54899.66181123.js:21713:29)
    at createReactElement (/private/var/folders/n2/ld8jc1w55xj757fyvyc0xg4r0000gn/T/nacmartin_phpexecjs57a09385d54899.66181123.js:19305:13)
    at serverRenderReactComponent (/private/var/folders/n2/ld8jc1w55xj757fyvyc0xg4r0000gn/T/nacmartin_phpexecjs57a09385d54899.66181123.js:21556:72)
    at Object.serverRenderReactComponent (/private/var/folders/n2/ld8jc1w55xj757fyvyc0xg4r0000gn/T/nacmartin_phpexecjs57a09385d54899.66181123.js:275:54)
    at eval (eval at <anonymous> (/private/var/folders/n2/ld8jc1w55xj757fyvyc0xg4r0000gn/T/nacmartin_phpexecjs57a09385d54899.66181123.js:52426:8), <anonymous>:7:23)
    at eval (eval at <anonymous> (/private/var/folders/n2/ld8jc1w55xj757fyvyc0xg4r0000gn/T/nacmartin_phpexecjs57a09385d54899.66181123.js:52426:8), <anonymous>:14:3)
    at /private/var/folders/n2/ld8jc1w55xj757fyvyc0xg4r0000gn/T/nacmartin_phpexecjs57a09385d54899.66181123.js:52426:8
    at /private/var/folders/n2/ld8jc1w55xj757fyvyc0xg4r0000gn/T/nacmartin_phpexecjs57a09385d54899.66181123.js:52432:14

form html output on page not same as schema

The form html is not taking into account placeholders and also it is not following set order on EntityType field.

This is working correctly in 'plain' Symfony.

The specific form field:

`

class AdType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('model', EntityType::class, array(
            'class' => 'UsedBundle:Model',
            'query_builder' => function (EntityRepository $er) {
                $model = $er->createQueryBuilder('m')
                    ->join('UsedBundle:Brand','b')
                    ->andWhere('b.id = m.brand')
                    ->andWhere("m.active = true")
                    ->addOrderBy('b.brand')
                    ->addOrderBy('m.model');
                return $model;
            },
            'choice_label' => function ($model) {
                $this->brand = $model->getBrand()->getBrand();
                $this->model_name = $model->getModel();
                return $this->brand . ' ' . $this->model_name;
            },
            'label' => false,
            'attr' => array(
                'placeholder' => 'Modele *',
                'data-validation' => 'required',
                'data-validation-error-msg' => "SVP, sélectionnez votre modele",  
                )  
            ))`

The schema is getting the correct info ( from console.log(adEntry.state))

`

model: {…}
attr: {…}
 "data-validation": "required"
 "data-validation-error-msg": "SVP, sélectionnez votre modele"
  placeholder: "Modele *"
 __proto__: Object { … }
  default: "Modele *"
  enum: Array [ "211", "212", "287", … ]
 enum_titles: Array [ "Abarth 500", "Abarth 500C", "Alfa Romeo 146", … ]
 propertyOrder: 1
 title: "model"
 type: "string"`

But the output is leaving aside the order above ( from enum and enum_titles ) and ordering by <option value""> ascending.

Also the placeholder or default option is not being taken into account, even though the schema is correct. This for all fields.

html

`

<option value="1">Dacia Sandero</option>
<option value="3">Dacia Lodgy</option>
<option value="4">Dacia Dokker</option>
<option value="7">Ford Ka</option>
  ...........`

Thanks

setup liform bundle without redux?

Hi

I noticed that your Liform setup includes redux, which adds an undesirable layer of complexity for a noob like me. Will it work without redux?

The same issue of complexity avoidance applies to JWT. Can it just be taken out?

I did manage to have the sandbox work locally, by the way. The question is now how to transplant it to my project.
Thanks

Documentation example not working

Hello,

when following the documention in README.MD, when getting to the command npm run webpack-serverside, npm errors out with Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema. - configuration.output.path: The provided value "./app/Resources/webpack/" is not an absolute path!

See screenshot below.

screen shot 2017-03-24 at 15 30 08

Sandbox bug

Getting an error on install - not sure how to fix or if it is an issue on your end.

`Exception in rendering!

Message: (0 , _reactRouter.createServerRenderContext) is not a function

TypeError: (0 , reactRouter.createServerRenderContext) is not a function
at exports.default (/private/var/folders/q
/ws3x7hmn32l49288mlc3ymqc0000gn/T/nacmartin_phpexecjs589553a4f354f5.13490040.js:16725:62)
at createReactElement (/private/var/folders/q_/ws3x7hmn32l49288mlc3ymqc0000gn/T/nacmartin_phpexecjs589553a4f354f5.13490040.js:9808:12)
at serverRenderReactComponent (/private/var/folders/q_/ws3x7hmn32l49288mlc3ymqc0000gn/T/nacmartin_phpexecjs589553a4f354f5.13490040.js:33170:71)
at Object.serverRenderReactComponent (/private/var/folders/q_/ws3x7hmn32l49288mlc3ymqc0000gn/T/nacmartin_phpexecjs589553a4f354f5.13490040.js:14663:53)
at eval (eval at (/private/var/folders/q_/ws3x7hmn32l49288mlc3ymqc0000gn/T/nacmartin_phpexecjs589553a4f354f5.13490040.js:37655:8), :4:23)
at eval (eval at (/private/var/folders/q_/ws3x7hmn32l49288mlc3ymqc0000gn/T/nacmartin_phpexecjs589553a4f354f5.13490040.js:37655:8), :11:3)
at /private/var/folders/q_/ws3x7hmn32l49288mlc3ymqc0000gn/T/nacmartin_phpexecjs589553a4f354f5.13490040.js:37655:8
at /private/var/folders/q_/ws3x7hmn32l49288mlc3ymqc0000gn/T/nacmartin_phpexecjs589553a4f354f5.13490040.js:37661:14
at console.history (/private/var/folders/q_/ws3x7hmn32l49288mlc3ymqc0000gn/T/nacmartin_phpexecjs589553a4f354f5.13490040.js:1:92)
at Object. (/private/var/folders/q_/ws3x7hmn32l49288mlc3ymqc0000gn/T/nacmartin_phpexecjs589553a4f354f5.13490040.js:1:110)`

Assets being loaded from port 8000

Hello,

I installed the Application straight out of the box according to the docs. For some reason, the assets are being loaded from port 8000 instead of 8080.

Also I get a range of warnings:


127.0.0.1/:41 [SERVER] Warning: [react-router] `RoutingContext` has been renamed to `RouterContext`. Please use `import { RouterContext } from 'react-router'`. http://tiny.cc/router-routercontext(anonymous function) @ 127.0.0.1/:41
(program):66 Download the React DevTools for a better development experience: https://fb.me/react-devtools
(program):45 Warning: render(): Target node has markup rendered by React, but there are unrelated nodes as well. This is most commonly caused by white-space inserted around server-rendered markup.warning @ (program):45
(program):49 Warning: [react-router] It appears you have provided a deprecated history object to `<Router/>`, please use a history provided by React Router with `import { browserHistory } from 'react-router'` or `import { hashHistory } from 'react-router'`. If you are using a custom history please create it with `useRouterHistory`, see http://tiny.cc/router-usinghistory for details.


Integration with FOSJsRoutingBundle

RIght now the routes in React are hardcoded, and that is ugly. We should be able to use FosJsRoutingBundle and integrate it into Webpack.

I guess we could require in the Webpack bundles web/bundles/fosjsrouting/js/router.js and also load the route fos_js_routing_js with a url-loader.

Running the server after install

Hii
I have installed the bundle and after composer install and npm install I got the message Server bundle not found.

capture d ecran 2016-09-29 a 14 08 04

I've created the file in app/Resources/webpack but still get the same error. What should I do ?
Thank you

Documentation: file names/paths changed?

Under "Globally Expose your React Components," should the paths client/js/serverRegistration.js and client/js/clientEntryPoint.js be changed to cleint/startup/serverRegistration.jsx and client/startup/clientRegistration.jsx?

Client side only error

I get an error when I switch to client_side in file limenius_react.yaml. both and server_side works well.

image

Thank you.

Cannot run SSR with the "external_server" mode

Hello,
I am tying to run the project with server side rendering with the "external_server" mode (I am running the symfony3 branch).

So I modified the mode parameter from the limenius_react config to "external_server" and then I prompt the command (cd ./app/Resources/node-server && node server) to run the node server. But server don't start and throw this error :

events.js:183
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRINUSE node.sock
    at Object._errnoException (util.js:1024:11)
    at _exceptionWithHostPort (util.js:1046:20)
    at Server.setupListenHandle [as _listen2] (net.js:1334:19)
    at listenInCluster (net.js:1392:12)
    at Server.listen (net.js:1487:5)
    at Object.<anonymous> (/Users/loicgoyet/Workspace/test/symfony-react-sandbox/app/Resources/node-server/server.js:83:12)
    at Module._compile (module.js:635:30)
    at Object.Module._extensions..js (module.js:646:10)
    at Module.load (module.js:554:32)
    at tryModuleLoad (module.js:497:12)

I don't know really well node so I tread carefully, but from what I understand, the node.sock file is missing. Is that on purpose ? Does it means we have to write some socket node.js to run the external_server mode ?

Thanks a lot for answering !

Example not working on Android 6

Hello,

I've tested the example and its working fantastic, but unfortunately not on my smartphone (Android 6).

See screenshot below.

screenshot_2017-11-16-09-53-41-624_com android browser

PhpExecJs: Cannot autodetect any JavaScript runtime

Hi

This is on my own project. I did not notice this on the sandbox.

I installed PhpExecJs with

brew install php71-v8js

, but whenever I set the config default_rendering for server_side rendering or both it throws the error above.

It works with client_side rendering only ( with other issues, but that's something for later ).

Are there any other steps that should be taken for it to recognize PhpExecJs? I read through the PhpExecJs's documentation on Github but could not find anything else.

I'm on Mac, by the way.

Thanks

Bernard

[Question] Symfony version selection

I am thinking of using this great resource as a boilerplate for a new project, one question: Is there any reason you require "symfony/symfony": "3.1.*@dev" and not a more stable version?

Thanks again for this resource and the blog write up 👍

Role of server-bundle.js

Hey, just had a doubt, what exactly is the role of the server bundle. Is it possible to do server side rendering without generating this bundle via webpack. Also is this a one time command which i can use for my app, create the bundle and then run things normally, or does this start a node server which acts as a proxy to the symfony app. Could u please explain a bit in detail..

Thanks

Remove the hardcoded base_url for webpack asset package

As stated in the doc in AppKernel.php there is a conditional/hardcoded value for the base_url as stated in the issue title, this is not ideal if we want to develop using virtualhosts like in a virtualized environment, it will be better to handle this during the bundle configuration and leave the user to set the base_url in the config.yml file

Enabling Redux Breaks Page Navigation

When I enabled redux, and then try and navigate to a different page, all I get is the word Loading... and no page content. A refresh of the browser displays the appropriate content. I looks like its not making a round trip to the server.

webpack-dev-server hot reload not working

Hi,
I have cloned the project and I run it using the following commands:

  1. npm run webpack-serverside
  2. npm run webpack-dev
  3. bin/console server:start

After this, I visit http://localhost:8000/ and shows the web perfectly.
Problem comes when I change a Javascript file:

  1. Terminal doesn't rebuild this change
  2. And the change doesn't appears on browser

Why hot-reload doesn't works? Where is my problem?

Thanks.

Events Handling

First of all, thanks for this bundle.

I recently integrated it with a symfony project and managed to render a few areas of the app using react and the exact structure this example follows, but I ran into an issue that I assume is related to react rendering on server side (it's using the default: both).

Whenever I tried to add even an onClick listener, once the page is rendered nothing will happen.

So my question is, if I have both the RecipesAppServer and the RecipesAppClient pointing to the same react component, what am I missing for click events to work?

Would an example be possible? I'd highly appreciate it!

Error after installation

Hi,

I installed your application.
I ran composer install and npm install but i have this error when i try to reach the home page 👍

An exception has been thrown during the rendering of a template ("Something went wrong evaluating JS code:
result: "Error: Cannot find module "./recipes-redux/store/recipesStore""").

Someone can help me ?

Best regards

Nicolas Blaudez

Problem with static routing "Invariant Violation: Browser history needs a DOM"

I'm trying to make server rendering work on Symfony applying this example "https://github.com/Limenius/symfony-react-sandbox/blob/master/client/js/recipes/startup/RecipesApp.js" but is just not working on server rendering... I'm not sure it it something with my environment or it is an outdated example with old log, could you help me to make this work?

Here is the code I am using right now:

import React from 'react'
import ReactOnRails from 'react-on-rails'
import { Provider } from 'react-redux'
import { browserHistory } from 'react-router'
import { Route } from 'react-router-dom'
import BrowserRouter from 'react-router-dom/BrowserRouter';
import StaticRouter from 'react-router-dom/StaticRouter';
import { ConnectedRouter } from 'react-router-redux';
import Component from './Component'

import {createBrowserHistory, createMemoryHistory} from 'history';


const Root =  (initialProps, context) => {                
    let Router
    const { location, base, serverSide } = context
    // We render a different router depending on whether we are rendering server side
    // or client side.
    if (serverSide) {
        Router = (props) => (
            <StaticRouter basename={base} location={location} context={{}} >
                {props.children}
            </StaticRouter>
        )
    } else {
        Router = (props) => (
            <BrowserRouter basename={base} >
                {props.children}
            </BrowserRouter>
        )
    }
    //const history =  createHistory()
    //store for this component
    //todo fix react router
    const store = ReactOnRails.getStore('store')    
    //todo fix router
    return (<Provider store={store}>                 
                <Router>                   
                   <Route path={`/:mode1/:mode2`} exact render={(obj) => <div>{JSON.stringify(obj)}</div>} />                 
                </Router>
            </Provider>)
}

export default Root

I'm using Symfony 3.3 + PHP7 and the following react environment:
"react": "^15.6.1",
"react-dom": "^15.6.1",
"react-on-rails": "^8.0.3",
"react-redux": "^5.0.6",
"react-router": "^4.2.0",
"react-router-dom": "^4.2.2",
"react-router-redux": "^4.0.8"

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.