错误你的锁文件需要更新,但是 yarn 是 运行 with `--frozen-lockfile`

error Your lockfile needs to be updated, but yarn was run with `--frozen-lockfile`

我的 yarn.lock 文件中有一个依赖项存在问题。问题出在 ldapjs 上,最新版本有一个关于用户或密码中特殊字符的错误,所以我想在最新的工作版本 1.0.2 中冻结它。

当我提交我的代码到master分支时,构建这个项目的步骤开始失败说出标题的消息。

这是我的 dockerfile

FROM repository/node-oracle:10.15.3

LABEL maintainer="Me"

RUN yarn cache clean

# Add Tini
ENV TINI_VERSION v0.18.0
ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini /tini
RUN chmod +x /tini
ENTRYPOINT ["/tini", "--"]

WORKDIR /usr/src/auth

COPY . .

RUN yarn install --frozen-lockfile --non-interactive --silent

ENV PATH /usr/src/auth/node_modules/.bin:$PATH

EXPOSE 3000

CMD ["node", "./bin/www"]

关于如何使这项工作有任何变通办法吗?

此外,作为额外信息,我能够 运行 在功能分支中使用此步骤的管道,消息在开发和主分支中启动。

[更新]

这些是在我的 yarn.lock 文件中更新和冻结的依赖项

activedirectory@^0.7.2:
  version "0.7.2"
  resolved "https://registry.yarnpkg.com/activedirectory/-/activedirectory-0.7.2.tgz#19286d10c6b24a98cc906dc638256191686fa91f"
  integrity sha1-GShtEMaySpjMkG3GOCVhkWhvqR8=
  dependencies:
    async ">= 0.1.22"
    bunyan ">= 1.3.5"
    **ldapjs "=1.0.2"**
    underscore ">= 1.4.3"

***ldapjs@1.0.2***:
  version "1.0.2"
  resolved "https://registry.yarnpkg.com/ldapjs/-/ldapjs-1.0.2.tgz#346e040a95a936e90c47edd6ede5df257dd21ee6"
  integrity sha512-XzF2BEGeM/nenYDAJvkDMYovZ07fIGalrYD+suprSqUWPCWpoa+a4vWl5g8o/En85m6NHWBpirDFNClWLAd77w==
  dependencies:
    asn1 "0.2.1"
    assert-plus "0.1.5"
    bunyan "0.22.1"
    nopt "2.1.1"
    pooling "0.4.6"
  optionalDependencies:
    dtrace-provider "0.2.8"

只是一个更新。经过几次尝试,我终于能够做我想做的事了。从 ldap.js 和活动目录(包含 ldap.js 库)中删除 ^ 按预期完成了工作。

我陷入了同样的错误,问题是我的 yarn.lock 文件不是最新的。我遵循 following link 并解决了我的问题。

显然,我只需要 运行 yarn install 更新我的 yarn.lock 文件并推送到 repo。

希望这对以后的人有所帮助。