纱线安装不变违规:应该有一个已解决的参考

Yarn install Invariant Violation: should have a resolved reference

我正在尝试在 Jenkins 2.150.1 上构建一个版本,但我遇到了 yarn 安装错误: Invariant Violation: should have a resolved reference

在具有相同配置的本地计算机上安装工作正常。

有人知道我该如何解决这个问题吗?

verbose 0.446 Checking for configuration file "/usr/.yarnrc".

verbose 0.45 current time: 2019-06-05T03:51:11.266Z

[1/4] Resolving packages...

verbose 1.179 Performing "GET" request to
"https://registry.yarnpkg.com/ember-cli-babel".

verbose 1.286 Request "https://registry.yarnpkg.com/ember-cli-babel"
finished with status code 200.

warning Resolution field "ember-cli-babel@6.12.0" is incompatible with
requested version "ember-cli-babel@^5.1.6"

warning Resolution field "ember-cli-babel@6.12.0" is incompatible with
requested version "ember-cli-babel@^5.1.6"

warning Resolution field "ember-cli-babel@6.12.0" is incompatible with
requested version "ember-cli-babel@^5.1.6"

warning Resolution field "ember-cli-babel@6.12.0" is incompatible with
requested version "ember-cli-babel@^5.1.6"

verbose 1.435 Invariant Violation: should have a resolved reference

  at invariant (/opt/yarn/lib/cli.js:1296:15)

  at PackageRequest.resolveToExistingVersion (/opt/yarn/lib/cli.js:34819:51)

  at PackageResolver.resolvePackagesWithExistingVersions (/opt/yarn/lib/cli.js:60937:11)

  at /opt/yarn/lib/cli.js:60869:14

  at Generator.next (<anonymous>)

  at step (/opt/yarn/lib/cli.js:92:30)

  at /opt/yarn/lib/cli.js:103:13

  at <anonymous>

  at process._tickCallback (internal/process/next_tick.js:188:7)

error An unexpected error occurred: "should have a resolved
reference".

info If you think this is a bug, please open a bug report with the
information provided in "/usr/src/app/yarn-error.log".

info Visit https://yarnpkg.com/en/docs/cli/install for documentation
about this command.

time="2019-06-05T03:51:12Z" level=fatal msg="build failed: building
[myapp-client]: build artifact: running build: The command '/bin/sh
c yarn --ignore-engines install --verbose' returned a non-zero code: 1"

script returned exit code 1

相关 Dockerfile:

FROM node:8.9.4-stretch as builder

WORKDIR /usr/src/app

COPY package.json .
COPY .npmrc .
COPY yarn.lock .
COPY .bowerrc .
COPY bower.json .
RUN yarn cache clean
RUN yarn --ignore-engines install --verbose

COPY . .
RUN yarn run build:production

发现这是由于 CI 服务器的纱线版本。

已在本地降级到版本 1.3.2 并且能够重现该问题。

升级到 yarn 1.16,问题消失。

解决方案:升级纱线:

sh "curl --compressed -o- -L https://yarnpkg.com/install.sh | sh"