11

I was following a video tutorial from plural sight. Course name is "Building a Real-time App with React, Flux, Webpack, and Firebase".

Please see below code and attached screen shot of the issue i am having. Webpack is failing when ever i try to re build the files. Can someone please advise of what that issue could be. I'm currently using all the latest libraries.

enter image description here enter image description here

/*webpack.config.js*/

module.exports = {
entry: {
    main: [
        './src/main.js'
    ]
},
output: {
    filename: './public/[name].js'
},
module: {
    loaders: [
        {
            test: /\.jsx?$/,
            exclude: /node_modules/,
            loader: 'babel'
        }
    ]
}
}



  /*App.jsx*/
  import React from 'react';

 class App extends React.Component {
 constructor() {
    super();
    this.state = {
        messages: [
            'hi there how are you ?',
            'i am fine, how are you ?'
        ]
    }
}

render() {
    var messageNodes = this.state.messages.map((message)=> {
        return (
            <div>{message}</div>
        );
    });

    return (
        <div>{messageNodes}</div>
    );
 }
 }

 export default App;

/*main.js*/
import React from 'react';
import ReactDOM from 'react-dom';
import App from './components/App.jsx';

ReactDOM.render(<App/>, getElementById('container'));

/*index.html*/
<!DOCTYPE html>
 <html>
  <head>
<title></title>
<meta charset="utf-8" />
</head>
<body>
<div id="container"></div>
<script src="public/main.js"></script>
</body>
</html>

/*package.json */

{
"name": "reatapp",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
 },
 "author": "",
"license": "ISC",
 "dependencies": {
"babel-core": "^6.1.2",
"babel-loader": "^6.0.1",
"babel-preset-react": "^6.1.2",
"babelify": "^7.2.0",
"react": "^0.14.2",
"react-dom": "^0.14.2",
"webpack": "^1.12.3"
 }
 }
Philip Kirkbride
  • 21,381
  • 38
  • 125
  • 225
Erkan Demir
  • 785
  • 1
  • 8
  • 24
  • It might be with the `output: { filename: ./public/[name].js}`. Try adding another key for path: `path: './public'`. But I also see that your main is `main.js` meanwhile you have your code in `app.jsx`. Did you `import App from './components/app.jsx';`? – leocreatini Nov 10 '15 at 02:42
  • @LeoCreatini what makes you think that is the issue. The issue started after i added React code. Please see attached screen shot of my file directory – Erkan Demir Nov 10 '15 at 02:47
  • I also saw a missing semicolon in the `render()`'s `return ();` And a missing semicolon in `this.state = {}` – leocreatini Nov 10 '15 at 02:49
  • Yeah, I didn't see the scrollbar, the `main.js` was hidden from view. – leocreatini Nov 10 '15 at 02:50
  • Just added the semicolon on the return type. Still the same issue. – Erkan Demir Nov 10 '15 at 02:50
  • @LeoCreatini it looks like it's complaining about ReactDOM.render(, getElementById('container')); – Erkan Demir Nov 10 '15 at 02:52
  • Both missing ones? I think it's just not compiling correctly, if so, the error in the App.jsx makes in unavailable in main.js as the log says. – leocreatini Nov 10 '15 at 02:53
  • Let us [continue this discussion in chat](http://chat.stackoverflow.com/rooms/94668/discussion-between-erkan-demir-and-leocreatini). – Erkan Demir Nov 10 '15 at 02:57
  • The semicolon is still missing in `this.state = {};`, try adding that in `App.jsx` – leocreatini Nov 10 '15 at 02:57
  • I'm try to use new version of package in this course too, but it has a lot problem, since a lot is deprecate function in babel 6 (example alt's decorators) – ilumin Dec 12 '15 at 10:03

3 Answers3

13

It was solved. The answer was in installing presets npm i --save babel-preset-env babel-preset-react. Then adding another key in the webpack.config.js, in the loader: query: {presets: ['env', 'react'] }. Should be good to go.

Jonathan
  • 397
  • 1
  • 5
  • 6
leocreatini
  • 676
  • 1
  • 9
  • 18
0

I tried the above steps and followed many blogs and sites for this, but the problem was still there.Then I found out that I was working with webpack 4. So, after long search I found out the blog:
https://medium.freecodecamp.org/part-1-react-app-from-scratch-using-webpack-4-562b1d231e75.
So, I followed the steps and found out that the problem was still there.Then, after long search, I found out that react folder was not present in my node_modules folder.Then I followed the following steps:

  1. Delete the package.lock.json file.
  2. Run npm install.
  3. Check the node_modules folder, you will now see the react folder.
  4. Run npm start. Then, my problem got rectified.
סטנלי גרונן
  • 2,917
  • 23
  • 46
  • 68
0

You can try execute this command: npm rebuild node-sass

Santos L. Victor
  • 628
  • 8
  • 13