This article is about fixing Error:0308010C:digital envelope routines: unsupported in facebook create-react-app
  • 22-Jan-2023
Lightrun Team
Author Lightrun Team
Share
This article is about fixing Error:0308010C:digital envelope routines: unsupported in facebook create-react-app

Error:0308010C:digital envelope routines: unsupported in facebook create-react-app

Lightrun Team
Lightrun Team
22-Jan-2023

Explanation of the problem

The latest version of Node (17.2.0) has been installed on the system. However, when attempting to start the project in development mode using the command “npm run start,” an error is thrown and the project is unable to start.
The error message generated when attempting to start the project in development mode is not specified. It is possible that the issue may be related to compatibility issues with the installed version of Node and the dependencies required by the project.
To resolve the issue, it may be necessary to investigate the dependencies required by the project and ensure they are compatible with the installed version of Node. Additionally, checking the error message generated when attempting to start the project in development mode may provide more information on the specific cause of the problem and aid in troubleshooting. Updating the dependencies to the latest version may also be a possible solution for the issue.

Troubleshooting with the Lightrun Developer Observability Platform

Getting a sense of what’s actually happening inside a live application is a frustrating experience, one that relies mostly on querying and observing whatever logs were written during development.
Lightrun is a Developer Observability Platform, allowing developers to add telemetry to live applications in real-time, on-demand, and right from the IDE.

  • Instantly add logs to, set metrics in, and take snapshots of live applications
  • Insights delivered straight to your IDE or CLI
  • Works where you do: dev, QA, staging, CI/CD, and production

Start for free today

Problem solution for Error:0308010C:digital envelope routines::unsupported in Facebook create-react-app

The issue of incompatible Node versions with Create-React-App (CRA) arises when the version of Node.js that the app is built with, is different from the version of Node that is currently installed on the user’s machine. This can cause issues when running the app, as certain features or dependencies may not be compatible with the installed version of Node. One way to solve this issue is by using a tool called Node Version Manager (nvm), which allows the user to install and run multiple versions of Node on the same machine. This way, the user can switch between different versions as needed, depending on the version that the app was built with. The following code snippet shows how to install version 16.13.0 of Node using nvm and then run the app with that version:

nvm install 16.13.0 
nvm run 16.13.0

Another way to solve the issue is by downgrading Node to a specific version that is known to work with the app. This can be done by uninstalling the current version of Node using npm and then installing the specific version using npm install node@16.13.1. The following code snippet shows how to uninstall the current version of Node and install version 16.13.1:

npm uninstall node 
npm install node@16.13.1

Additionally, it is suggested to upgrade webpack version from 4 to 5. Webpack is a popular module bundler used by CRA that is responsible for taking the app’s JavaScript code and dependencies and bundling them into a single file that can be loaded by the browser. CRA version 5 uses webpack version 5, which has several enhancements over the previous versions, including improved performance and better support for ES modules.

Other popular problems with Facebook create-react-app

Problem: “Failed to compile” error when running the app

This is a common problem that users may face when working with Create-React-App (CRA). It occurs when the app fails to compile due to a syntax error or a missing dependency. The error message usually appears in the console and can be difficult to troubleshoot. One of the common reasons for this error is a missing or incorrect import statement. For example, if a component is imported from the wrong location or with the wrong name, the app will fail to compile.

Solution:

To solve this problem, the user needs to locate the source of the error and fix it. One way to do this is by checking the error message in the console and looking for the file and line number where the error occurred. The following code snippet shows an example of an incorrect import statement and its correction:

// Incorrect import statement
import MyComponent from './components/MyComponent'

// Correct import statement
import MyComponent from './components/MyComponent/MyComponent'

Problem: “Cannot find module” error when running the app

This problem occurs when the app is unable to find a module that it depends on. It can happen when a dependency is missing or when the app is using an outdated version of a dependency. The error message usually appears in the console and can be difficult to troubleshoot.

Solution:

To solve this problem, the user needs to check the app’s dependencies and make sure that they are all installed and up-to-date. One way to do this is by running the npm install command to install missing dependencies and the npm update command to update outdated dependencies. The following code snippet shows how to install and update dependencies:

// Install missing dependencies
npm install missing-dependency

// Update outdated dependencies
npm update

Problem: “Invalid Host header” error when running the app in development mode

This problem occurs when the app is running in development mode and is unable to connect to the development server due to an “Invalid Host header” error. It can happen when the app is running on a different network or when the development server is running on a different port.

Solution:

To solve this problem, the user needs to configure the development server to listen on the correct host and port. One way to do this is by setting the host and port in the package.json file. The following code snippet shows an example of how to configure the development server to listen on the localhost and port 3000:

// package.json
{
  "scripts": {
    "start": "react-scripts start --host=localhost --port=3000",
    //...
  }
}

Alternatively, you can use env variable to set the host and port, as shown in the following code snippet:

// package.json
{
  "scripts": {
    "start": "set PORT=3000 && set HOST=localhost && react-scripts start",
    //...
  }
}

In this way you can easily switch between different development environments.

In general, these are some of the most popular problems that users may face when working with Create-React-App. The solutions for these problems are to check for missing or incorrect imports, check the dependencies and make sure they are installed and up-to-date, and configure the development server to listen on the correct host and port.

A brief introduction to Facebook create-react-app

Create-React-App (CRA) is a command line tool that allows developers to quickly set up and start building a new React application. It is maintained by Facebook and is widely used by developers due to its simplicity and ease of use. CRA abstracts away many of the complexities of setting up a new React app, such as configuring webpack, Babel, and other dependencies. It also provides a set of built-in scripts that automate common tasks, such as starting the development server, building the app for production, and running tests.

CRA uses webpack, a popular module bundler, to bundle the app’s JavaScript code and dependencies into a single file that can be loaded by the browser. It also uses Babel, a JavaScript transpiler, to convert the latest JavaScript syntax to an older version that is compatible with most browsers. Additionally, it uses Jest, a popular testing framework, to run tests and generate code coverage reports. CRA also provides a development server that allows the user to run the app in a web browser and see the changes in real-time. This development server also supports hot reloading, which means that the app will automatically reload in the browser when the code is changed. CRA provides a simple and efficient way to start building a React application without having to set up the environment manually.

Most popular use cases for Facebook create-react-app

  1. Building web applications: Create-React-App (CRA) is primarily used for building web applications using React, a JavaScript library for building user interfaces. CRA provides a quick and easy way to set up a new React app and start building components, views, and other features of a web application.
  2. Building Progressive Web Applications (PWA): Progressive Web Applications (PWA) are web applications that can be installed on a user’s device and run offline. CRA provides built-in support for PWA features such as service workers, which can be used to cache assets and enable offline functionality. By using CRA, developers can easily create PWAs that can be installed on a user’s device and run offline.
  3. Building mobile applications: Create-React-App (CRA) can be used to build mobile applications using React Native, a framework for building mobile apps using React. React Native allows developers to write mobile apps that run on both iOS and Android using the same codebase. By using CRA as the starting point, developers can easily use the same codebase to build both web and mobile apps.
Share

It’s Really not that Complicated.

You can actually understand what’s going on inside your live applications.

Try Lightrun’s Playground

Lets Talk!

Looking for more information about Lightrun and debugging?
We’d love to hear from you!
Drop us a line and we’ll get back to you shortly.

By submitting this form, I agree to Lightrun’s Privacy Policy and Terms of Use.