新的 React 应用程序在安装后无法立即编译

New React app failed to compile immediatly following install

我已经使用 React Native 一段时间了,但我想我会在网络上试用 React。所以我遵循了这个指南:https://reactjs.org/docs/create-a-new-react-app.html 但是在使用 npx create-react-app react-try 之后,导航到新文件夹并输入 yarn start 我收到了这个错误消息:

Failed to compile.

./src/index.js 1:60
Module parse failed: Unexpected token (1:60)
File was processed with these loaders:
 * ./node_modules/@pmmmwh/react-refresh-webpack-plugin/loader/index.js
 * ./node_modules/react-scripts/node_modules/babel-loader/lib/index.js
You may need an additional loader to handle the result of these loaders.
> $RefreshRuntime$ = require('C:/Users/e096752/Documents/Cole's Git Repos/react-try/node_modules/react-refresh/runtime.js');
| $RefreshSetup$(module.id);

这是创建方法中包含的所有内容: Project

Package.json

{
  "name": "react-try",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@testing-library/jest-dom": "^5.11.4",
    "@testing-library/react": "^11.1.0",
    "@testing-library/user-event": "^12.1.10",
    "react": "^17.0.1",
    "react-dom": "^17.0.1",
    "react-scripts": "4.0.2",
    "web-vitals": "^1.0.1"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": [
      "react-app",
      "react-app/jest"
    ]
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}

如果您需要任何其他信息,请告诉我。我到底需要做什么?

似乎有问题 反应脚本 4.0.2。 解决方法是在 package.json 然后 运行 yarn install 手动将版本更改为 4.0.1。 这样就可以了!

我遇到这个问题是因为文件夹名称中的单引号,删除它解决了问题。

按照终端日志,问题已解决:

  1. 删除项目文件夹中的包-lock.json(不是package.json!)and/or yarn.lock。
  2. 删除项目文件夹中的 node_modules。
  3. 从项目文件夹的 package.json 文件中的 and/or devDependencies 中删除“babel-loader”。
  4. 运行 npm install 或 yarn,取决于您使用的包管理器。

我在 npm 命令下面使用了这个。我摆脱了这个问题。让我们试试这个
npm link

package.json -> 在“react-scripts”中将版本更改为 4.0.1:“4.0.1” ->运行 npm install again

是的,更改 package.json 文件中的 "react-scripts": "4.0.2" -> "react-scripts": "4.0.1" 有效。 "react-scripts": "4.0.3" -> "react-scripts": "4.0.1"

也是如此

当源文件 URL 中的一个或多个目录有撇号时,加载程序通常会发生这种情况。

在我自己的情况下是;

$ react-scripts start Failed to compile.

./src/index.js 1:43 Module parse failed: Unexpected token (1:43) File was processed with these loaders: ./node_modules/@pmmmwh/react-refresh-webpack-plugin/loader/index.js * ./node_modules/react-scripts/node_modules/babel-loader/lib/index.jsYou may need an additional loader to handle the result of these loaders.> $RefreshRuntime$ = require('C:/Users/PETER'S/PROJECTS/REACT APPS/EGAS/egas/node_modules/react-refresh/runtime.js');| $RefreshSetup$(module.id);

您可以通过打开此文件快速解决此问题;

"*项目根目录*\node_modules@pmmmwh\react-refresh-webpack-plugin\loader\RefreshModule.runtime.js"

然后更改此行;

$RefreshRuntime$ = require('$RefreshRuntimePath$');

绝对 URL 等价物(在我的例子中);

$RefreshRuntime$ = require("C:/Users/PETER'S/PROJECTS/REACT APPS/project-root/node_modules/react-refresh/runtime.js");

如果您的文件夹名称带有引号,例如 sample'app / "sample app", 删除那些引号或删除文件夹并从第一个开始创建应用程序反应应用程序。

首先更新您的 react-scripts 并从您的 packages.json 中移除 webpack(如果您已添加)。

然后您需要清除 webpack 缓存,因此最简单的方法是删除 node_modules 并重新安装它们