NPM start 返回错误,“项目依赖树可能有问题”

Ali*_*ice 22 javascript node.js npm reactjs webpack

我是编码新手,并且对为什么无法正确设置 React 有疑问。上周我很挣扎,然后终于成功了。但是现在我又遇到了同样的问题,但没有任何效果。

我有一个我开始的项目,npx create-react-app然后当我进入该项目时,我猜这个问题:

项目依赖树可能有问题。这可能不是 Create React App 中的错误,而是您需要在本地修复的问题。

Create React App 提供的 react-scripts 包需要一个依赖:

"webpack": "4.29.6"

不要尝试手动安装:您的包管理器会自动安装。但是,在树的更高位置检测到了不同版本的 webpack:

/Users/aliceparker/node_modules/webpack(版本:4.33.0)

众所周知,手动安装不兼容的版本会导致难以调试的问题。

如果您希望忽略此检查,请将 SKIP_PREFLIGHT_CHECK=true 添加到项目中的 .env 文件中。这将永久禁用此消息,但您可能会遇到其他问题。

要修复依赖树,请尝试按照以下确切顺序执行以下步骤:

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

在大多数情况下,这应该足以解决问题。如果这没有帮助,您还可以尝试其他一些方法:

  1. 如果您使用 npm,请安装 yarn ( http://yarnpkg.com/ ) 并用它重复上述步骤。这可能会有所帮助,因为 npm 存在已知的包提升问题,这些问题可能会在未来版本中得到解决。

  2. 检查 /Users/aliceparker/node_modules/webpack 是否在您的项目目录之外。例如,您可能不小心在主文件夹中安装了某些东西。

  3. 尝试在您的项目文件夹中运行 npm ls webpack。这将告诉您安装了 webpack 的其他包(除了预期的 react-scripts)。

如果没有其他帮助,请将 SKIP_PREFLIGHT_CHECK=true 添加到项目中的 .env 文件中。如果您无论如何都想继续,这将永久禁用此预检检查。

PS 我们知道这条消息很长,但请阅读上面的步骤 :-) 我们希望它们对您有所帮助!

我已按照上述步骤操作。仍然得到问题。我还全局卸载了 webpack 并重新安装了它。

这是我的 package.json 文件的样子:

`{
  "name": "ravenous-app",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "react": "^16.8.6",
    "react-dom": "^16.8.6",
    "react-scripts": "3.0.1"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}`
Run Code Online (Sandbox Code Playgroud)

任何人都可以指导我解决这个问题吗?(Ps。我只是尝试创建一个新项目,但遇到同样的问题......)

Kri*_*gid 27

就我而言,我以这些方式解决了我的问题

  1. .env在文件夹的根目录创建一个react folder
  2. 输入SKIP_PREFLIGHT_CHECK=true.env文件
  3. 现在在 cmd 中运行npm start

  • @NehaChaudhary 将永久禁用此预检检查 (2认同)

dav*_*d91 24

在终端中,运行:

cd ~

然后:

ls

您应该会看到一个文件列表。如果node_modules包含在该列表中(看起来应该是这样),您要删除该文件夹。您可以在终端中这样做:

rm -rf node_modules

但请记住:这不会将文件夹发送到垃圾箱。它将不可撤销地删除它。rm -rf是一个强大的命令。如果这让您感到紧张,请open .改为键入。这将~在 Finder 中打开您的“主”( ) 目录,您可以node_modules在那里以熟悉的、右键单击、发送到垃圾箱的方式进行删除。

希望有帮助!

  • 只是为了说明,我已经完成了解决问题的所有步骤,但无论如何它都不起作用。我发现我的用户文件夹中有一个 node_modules 文件夹。我删除了这个,但没有删除我项目中的那个,然后可以使用“npm start”而不会出现任何问题。 (2认同)

小智 10

删除package-lock.json(不是package.json!)和/或yarn.lock在您的项目文件夹中。

node_modules在您的项目文件夹中删除。

webpackpackage.json项目文件夹中的文件中的依赖项和/或 devDependencies 中删除。

运行npm installyarn,具体取决于您使用的包管理器。

我尝试了上述所有方法,但它不起作用,但是一旦我将 .env 文件添加到我的项目结构中并添加SKIP_PREFLIGHT_CHECK=true 到文件中。我可以绕过这个问题:

问题解决了

这是您放入.env文件中的内容:

这是您放入 .env 文件中的内容


小智 7

您需要先尝试,使用名称创建一个文件.env并存储SKIP_PREFLIGHT_CHECK=true

root/.env 并且.env应该包含SKIP_PREFLIGHT_CHECK=true


小智 5

  1. 创建一个.env文件或编辑退出一个。
  2. SKIP_PREFLIGHT_CHECK = true将此写入.env文件。
  3. 重启开发服务器。

我是这样解决问题的。