为什么我会收到此错误:无法找到 node_modules 状态文件 - 运行安装可能会有所帮助(findPackageLocation)?

问题描述 投票:0回答:5

我尝试了很多,但我的项目不使用纱线运行,虽然已经工作了(使用 create-react-app 制作)。

我尝试过:

yarn install
-
npm install --global yarn
-
npm update --global yarn
-
 yarn version apply
等等。

当我跑步

yarn start
时:

Edit1:当我创建一个新项目(使用create-react-app)时,不会发生任何错误。它仅针对 以前的项目给出错误。

我已经对这些目录做了

yarn install
,并且
yarn start
工作了。 所以运行
yarn install
并不能解决这个问题。虽然当我再次运行
run install
时,它给出了这个错误:

Edit2:当我删除

node_modules
.yarn
yarn.lock
,然后运行
yarn install
然后运行
yarn start
时,它会给出另一个错误:

console create-react-app yarnpkg
5个回答
10
投票

你应该跑

yarn install

在运行任何 npm 脚本之前(纱线启动)。当您使用 create-react-app 时它会起作用,因为它会自行安装依赖项。

关于数字信封错误,您收到此错误是因为 NodeJS 版本(很可能)。如果您使用最新的 LTS 降级到之前的 LTS 版本。您可以在此处阅读更多信息:错误消息“错误:0308010C:数字信封例程::不支持”让我知道情况如何 –


4
投票

当我在存储库中已有 Yarn v3 配置文件时,尝试使用默认安装稳定 Node.js 16.x 版本的旧版本 Yarn v1,导致出现冲突,因此我遇到了同样的错误。

我试图为已有以下文件的现有存储库创建一个 Docker 容器:

  • .yarn/releases/yarn-3.1.1.cjs
  • .yarnrc.yml
  • .nvmrc

.nvmrc

lts/gallium

这对应于 Node.js LTS v16.18.0

.yarnrc.yml

nodeLinker: node-modules

plugins:
  - path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
    spec: "@yarnpkg/plugin-interactive-tools"

yarnPath: .yarn/releases/yarn-3.1.1.cjs

所以我创建了一个 Dockerfile,但是当它运行时

yarn run start
,它返回了相同的错误
Usage Error: Couldn't find the node_modules state file - running an install might help (findPackageLocation)

经过一番调查,我意识到 node:gallium-alpine 预构建的 Docker 镜像正在使用 Yarn v1 (1.22.19),但 .yarnrc.yml 文件的内容表明可能需要 Yarn v3,并且可能是引起冲突。

所以我只是按照这些 Yarn 说明 安装其 Corepack 和最新的 Yarn 3.3.0,并且还安装了 Git,因为它使用了它。

我将 .yarnrc.yml 重命名为 .yarnrc.yml.old,这样就不会使用它或导致冲突。

然后我通过运行重新生成了 .yarnrc.yml 和 .yarn 文件夹,这样它就会有 Yarn 3.3.0 而不是 3.1.1:

yarn policies set-version 3.3.0

但是这个命令只在文件中添加了一行带有新版本

yarnPath: .yarn/releases/yarn-3.3.0.cjs
的行,因此也有必要将.yarnrc.yml.old的其余部分添加到重新生成的.yarnrc.yml文件中。然后我可以删除 .yarnrc.yml.old 我也包含了 .dockerignore 文件以供参考。

Dockerfile

FROM node:gallium-alpine

WORKDIR /app

RUN apk add git
COPY package.json .
COPY .env ./

# copy all except shown in .dockerignore
COPY . .

RUN corepack enable && corepack prepare yarn@stable --activate && yarn set version 3.3.0 && yarn install

CMD ["yarn", "run", "start"]

.dockerignore

.git
node_modules
build
Dockerfile
.dockerignore
.gitignore

1
投票

我在 ci/cd 管道中与这个错误斗争了很长时间。

yarn install
未能正确完成,但它以
0
(成功)退出。由于未能正确安装,因此无法找到状态文件。

TLDR:确保

yarn install
正确完成


0
投票

我不小心在一个设置为使用 npm 的存储库中运行了

yarn
,它默默地改变了我的全局yarnrc文件,导致了这个错误。

我的解决方案是更新存储库中的yarnrc 文件以包含条目:

nodeLinker: pnp

0
投票

在运行任何命令启动项目之前运行

yarn install
对我来说很有效。我还是不知道这是怎么发生的

© www.soinside.com 2019 - 2024. All rights reserved.