From cff027c0c6d028a4ec552b2ba6227a847e8c4098 Mon Sep 17 00:00:00 2001 From: Olivier Combe Date: Tue, 9 Jan 2018 11:02:03 +0100 Subject: [PATCH] build: upgrade yarn to 1.3.2 Fixes #20566 --- aio/package.json | 3 ++- aio/tools/examples/shared/package.json | 5 +++++ package.json | 4 ++-- scripts/ci/env.sh | 2 +- tools/yarn/check-yarn.js | 14 ++++++++++++++ 5 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 tools/yarn/check-yarn.js diff --git a/aio/package.json b/aio/package.json index 610336dbbcc26..a7e2835e91021 100644 --- a/aio/package.json +++ b/aio/package.json @@ -19,6 +19,7 @@ "test": "yarn check-env && ng test", "pree2e": "yarn check-env && yarn ~~update-webdriver", "e2e": "ng e2e --no-webdriver-update", + "preinstall": "node ../tools/yarn/check-yarn.js", "presetup": "yarn install --frozen-lockfile && yarn ~~check-env && yarn boilerplate:remove", "setup": "yarn aio-use-npm && yarn example-use-npm", "postsetup": "yarn boilerplate:add && yarn build-ie-polyfills && yarn generate-plunkers && yarn generate-zips && yarn docs", @@ -60,7 +61,7 @@ }, "engines": { "node": ">=8.9.1 <9.0.0", - "yarn": ">=1.0.2 <2.0.0" + "yarn": ">=1.3.2 <2.0.0" }, "private": true, "dependencies": { diff --git a/aio/tools/examples/shared/package.json b/aio/tools/examples/shared/package.json index 6ed6c84ad36d4..ba76c27b16577 100644 --- a/aio/tools/examples/shared/package.json +++ b/aio/tools/examples/shared/package.json @@ -7,8 +7,13 @@ "http-server": "http-server", "protractor": "protractor", "webdriver:update": "webdriver-manager update --standalone false --gecko false $CHROMEDRIVER_VERSION_ARG", + "preinstall": "node ../../../../tools/yarn/check-yarn.js", "postinstall": "yarn webdriver:update" }, + "engines": { + "node": ">=8.9.1 <9.0.0", + "yarn": ">=1.3.2 <2.0.0" + }, "keywords": [], "author": "", "license": "MIT", diff --git a/package.json b/package.json index 174434fc6ce43..2895af4dd163e 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "license": "MIT", "engines": { "node": ">=8.9.1 <9.0.0", - "yarn": ">=1.0.2 <2.0.0" + "yarn": ">=1.3.2 <2.0.0" }, "repository": { "type": "git", @@ -20,7 +20,7 @@ "skylint": "find . -type f -name \"*.bzl\" ! -path \"*/node_modules/*\" ! -path \"./dist/*\" | xargs $(bazel info bazel-bin)/external/io_bazel/src/tools/skylark/java/com/google/devtools/skylark/skylint/Skylint", "prebuildifier": "bazel build --noshow_progress @com_github_bazelbuild_buildtools//buildifier", "buildifier": "find . -type f \\( -name BUILD -or -name BUILD.bazel \\) ! -path \"*/node_modules/*\" | xargs $(bazel info bazel-bin)/external/com_github_bazelbuild_buildtools/buildifier/buildifier", - "preinstall": "node -e \"if(process.env.npm_execpath.indexOf('yarn') === -1) throw new Error('Please use Yarn instead of NPM to install dependencies. See: https://yarnpkg.com/lang/en/docs/install/')\"", + "preinstall": "node tools/yarn/check-yarn.js", "postinstall": "yarn update-webdriver", "update-webdriver": "webdriver-manager update --gecko false $CHROMEDRIVER_VERSION_ARG", "check-env": "gulp check-env" diff --git a/scripts/ci/env.sh b/scripts/ci/env.sh index 8949570e89dcb..d74cede5e6403 100755 --- a/scripts/ci/env.sh +++ b/scripts/ci/env.sh @@ -35,7 +35,7 @@ fi ####################### setEnvVar NODE_VERSION 8.9.1 -setEnvVar YARN_VERSION 1.0.2 +setEnvVar YARN_VERSION 1.3.2 # Pin to a Chromium version that does not cause the aio e2e tests to flake. (See https://github.com/angular/angular/pull/20403.) # Revision 494239 (which was part of Chrome 62.0.3186.0) is the last version that does not cause flakes. (Latest revision checked: 508578) setEnvVar CHROMIUM_VERSION 494239 # Chrome 62 linux stable, see https://www.chromium.org/developers/calendar diff --git a/tools/yarn/check-yarn.js b/tools/yarn/check-yarn.js new file mode 100644 index 0000000000000..2e7d66ef63c47 --- /dev/null +++ b/tools/yarn/check-yarn.js @@ -0,0 +1,14 @@ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + +'use strict'; + +if (process.env.npm_execpath.indexOf('yarn') === -1) { + throw new Error( + 'Please use Yarn instead of NPM to install dependencies. See: https://yarnpkg.com/lang/en/docs/install/'); +}