我尝试了很多,但我的项目不使用纱线运行,虽然已经工作了(使用 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
时,它会给出另一个错误:
你应该跑
yarn install
在运行任何 npm 脚本之前(纱线启动)。当您使用 create-react-app 时它会起作用,因为它会自行安装依赖项。
关于数字信封错误,您收到此错误是因为 NodeJS 版本(很可能)。如果您使用最新的 LTS 降级到之前的 LTS 版本。您可以在此处阅读更多信息:错误消息“错误:0308010C:数字信封例程::不支持”让我知道情况如何 –
当我在存储库中已有 Yarn v3 配置文件时,尝试使用默认安装稳定 Node.js 16.x 版本的旧版本 Yarn v1,导致出现冲突,因此我遇到了同样的错误。
我试图为已有以下文件的现有存储库创建一个 Docker 容器:
.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
我在 ci/cd 管道中与这个错误斗争了很长时间。
yarn install
未能正确完成,但它以 0
(成功)退出。由于未能正确安装,因此无法找到状态文件。
TLDR:确保
yarn install
正确完成
我不小心在一个设置为使用 npm 的存储库中运行了
yarn
,它默默地改变了我的全局yarnrc文件,导致了这个错误。
我的解决方案是更新存储库中的yarnrc 文件以包含条目:
nodeLinker: pnp
在运行任何命令启动项目之前运行
yarn install
对我来说很有效。我还是不知道这是怎么发生的