frontarm / create-universal-react-app

Configuration-free SSR for Create React App.
MIT License
126 stars 1 forks source link

Clashes with ESLint from CRA Existing Project #1

Closed dan-fein closed 5 years ago

dan-fein commented 5 years ago

I've just seen this on Reddit and hope I can make it work, would be great to use, especially with Firebase.

I have an existing project, so I've just replaced "react-scripts" with "universal-react-scripts" then ran npm-install. Following this I ran npm start. After compiling, I'm receiving ESLint errors from within the universal react scripts module.

An error occured while server-rendering your app:

Error: Module build failed (from ./node_modules/universal-react-scripts/node_modules/eslint-loader/index.js):
Error: Cannot find module 'eslint/lib/rules/no-unused-expressions'
Referenced from: 
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
    at Function.Module._load (internal/modules/cjs/loader.js:562:25)
    at Module.require (internal/modules/cjs/loader.js:690:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.<anonymous> (/Users/danfein/Desktop/reviews/test_client/node_modules/eslint-plugin-flowtype/dist/rules/noUnusedExpressions.js:7:28)
    at Module._compile (internal/modules/cjs/loader.js:776:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Module.require (internal/modules/cjs/loader.js:690:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.<anonymous> (/Users/danfein/Desktop/reviews/test_client/node_modules/eslint-plugin-flowtype/dist/index.js:69:28)
    at Module._compile (internal/modules/cjs/loader.js:776:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at Object../src/index.node.js (/Users/danfein/Desktop/reviews/test_client/build/node/index.js:763:7)
    at __webpack_require__ (/Users/danfein/Desktop/reviews/test_client/webpack/bootstrap:682:1)
    at module.exports../src/index.node.js (/Users/danfein/Desktop/reviews/test_client/webpack/bootstrap:749:1)
    at Object.<anonymous> (/Users/danfein/Desktop/reviews/test_client/build/node/index.js:754:10)
    at Module._compile (internal/modules/cjs/loader.js:776:30)
    at requireFromFS (/Users/danfein/Desktop/reviews/test_client/node_modules/universal-react-dev-utils/devRendererMiddleware.js:156:5)
    at /Users/danfein/Desktop/reviews/test_client/node_modules/universal-react-dev-utils/devRendererMiddleware.js:73:30
    at Layer.handle [as handle_request] (/Users/danfein/Desktop/reviews/test_client/node_modules/universal-react-scripts/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/Users/danfein/Desktop/reviews/test_client/node_modules/universal-react-scripts/node_modules/express/lib/router/index.js:317:13)
    at /Users/danfein/Desktop/reviews/test_client/node_modules/universal-react-scripts/node_modules/express/lib/router/index.js:284:7
    at Function.process_params (/Users/danfein/Desktop/reviews/test_client/node_modules/universal-react-scripts/node_modules/express/lib/router/index.js:335:12)
    at next (/Users/danfein/Desktop/reviews/test_client/node_modules/universal-react-scripts/node_modules/express/lib/router/index.js:275:10)
    at next (/Users/danfein/Desktop/reviews/test_client/node_modules/universal-react-scripts/node_modules/express/lib/router/route.js:127:14)
    at Server.serveMagicHtml (/Users/danfein/Desktop/reviews/test_client/node_modules/universal-react-scripts/node_modules/webpack-dev-server/lib/Server.js:902:14)
    at Layer.handle [as handle_request] (/Users/danfein/Desktop/reviews/test_client/node_modules/universal-react-scripts/node_modules/express/lib/router/layer.js:95:5)
    at next (/Users/danfein/Desktop/reviews/test_client/node_modules/universal-react-scripts/node_modules/express/lib/router/route.js:137:13)
jamesknelson commented 5 years ago

Hmm, that's weird. Any chance you could trying replacing the eslintConfig object in your package.json with the one from a freshly generated project?

Here's the one from cura-firebase-example, for reference:

{
  "eslintConfig": {
    "extends": "react-app",
    "rules": {
      "no-restricted-imports": [
        "error",
        {
          "paths": [
            {
              "name": "styled-components",
              "message": "Please import from styled-components/macro."
            }
          ],
          "patterns": [
            "!styled-components/macro"
          ]
        }
      ]
    }
  },
}
jamesknelson commented 5 years ago

Just in case you haven't tried, it may also be worth a good rm -rf node_modules && npm install as well.

dan-fein commented 5 years ago

This worked! Thank you!

jamesknelson commented 5 years ago

Out of interest, did you have anything in eslintConfig previously? Or did you just have to add a new section?

dan-fein commented 5 years ago

I actually don't have an eslint config!