refactor(bazel): Schematics should fetch angular from distro (#28851)
PR Close #28851
This commit is contained in:
		
							parent
							
								
									96b597cfd0
								
							
						
					
					
						commit
						e5e4e63e71
					
				| @ -3,6 +3,7 @@ | ||||
|   "version": "0.0.0", | ||||
|   "scripts": { | ||||
|     "ng": "ng", | ||||
|     "postinstall": "ngc -p ./angular-metadata.tsconfig.json", | ||||
|     "start": "ng serve", | ||||
|     "build": "ng build", | ||||
|     "test": "ng test", | ||||
| @ -27,10 +28,11 @@ | ||||
|   "devDependencies": { | ||||
|     "@angular-devkit/build-angular": "~0.12.0", | ||||
|     "@angular/bazel": "file:../angular/dist/packages-dist/bazel", | ||||
|     "@angular/cli": "~7.2.1", | ||||
|     "@angular/cli": "~7.3.0", | ||||
|     "@angular/compiler-cli": "file:../angular/dist/packages-dist/compiler-cli", | ||||
|     "@angular/language-service": "file:../angular/dist/packages-dist/language-service", | ||||
|     "@bazel/bazel": "^0.21.0", | ||||
|     "@angular/upgrade": "file:../angular/dist/packages-dist/upgrade", | ||||
|     "@bazel/bazel": "^0.22.1", | ||||
|     "@bazel/ibazel": "^0.9.0", | ||||
|     "@bazel/karma": "^0.23.2", | ||||
|     "@bazel/typescript": "^0.23.2", | ||||
|  | ||||
| @ -1,29 +0,0 @@ | ||||
| // TODO(kyliau): This file should be removed when we use Angular npm distro from
 | ||||
| // Bazel projects.
 | ||||
| 
 | ||||
| const fs = require('fs'); | ||||
| 
 | ||||
| function replaceAngular(content) { | ||||
|   const regex = /ANGULAR_VERSION.*\nhttp_archive\((.*\n){4}\)/; | ||||
|   if (!regex.test(content)) { | ||||
|     throw new Error('Failed to find http_archive rule for Angular in WORKSPACE'); | ||||
|   } | ||||
|   return content.replace(regex, ` | ||||
| local_repository( | ||||
|     name = "angular", | ||||
|     path = "../../..", | ||||
| )`);
 | ||||
| } | ||||
| 
 | ||||
| function main(argv) { | ||||
|   argv = argv.slice(2); | ||||
|   if (argv.length !== 1) { | ||||
|     throw new Error('Expect WORKSPACE to be first parameter'); | ||||
|   } | ||||
|   const workspace = argv[0]; | ||||
|   let content = fs.readFileSync(workspace, 'utf-8'); | ||||
|   content = replaceAngular(content); | ||||
|   fs.writeFileSync(workspace, content); | ||||
| } | ||||
| 
 | ||||
| main(process.argv) | ||||
| @ -1,6 +1,7 @@ | ||||
| #!/usr/bin/env bash | ||||
| 
 | ||||
| set -eux -o pipefail | ||||
| readonly pwd=$(pwd) | ||||
| 
 | ||||
| function testBazel() { | ||||
|   # Set up | ||||
| @ -8,12 +9,12 @@ function testBazel() { | ||||
|   ng version | ||||
|   rm -rf demo | ||||
|   # Create project | ||||
|   ng new demo --collection=@angular/bazel --defaults --skip-git --style=scss | ||||
|   node replace_angular_repo.js "./demo/WORKSPACE" | ||||
|   ng new demo --collection=@angular/bazel --defaults --skip-git --skip-install --style=scss | ||||
|   cd demo | ||||
|   yarn add @angular/bazel@file:../../../dist/packages-dist/bazel | ||||
|   yarn webdriver-manager update --gecko=false --standalone=false $CI_CHROMEDRIVER_VERSION_ARG | ||||
|   cp ../package.json.replace ./package.json | ||||
|   sed -i "s#file:../angular#${pwd}/../..#" ./package.json | ||||
|   yarn | ||||
|   yarn webdriver-manager update --gecko=false --standalone=false $CI_CHROMEDRIVER_VERSION_ARG | ||||
|   ng generate component widget --style=css | ||||
|   ng build | ||||
|   ng test | ||||
| @ -23,7 +24,9 @@ function testBazel() { | ||||
| function testNonBazel() { | ||||
|   # Replace angular.json that uses Bazel builder with the default generated by CLI | ||||
|   mv ./angular.json.bak ./angular.json | ||||
|   mv ./tsconfig.json.bak ./tsconfig.json | ||||
|   rm -rf dist src/main.dev.ts src/main.prod.ts | ||||
|   sed -i 's/"es5BrowserSupport": true//' angular.json | ||||
|   ng build --progress=false | ||||
|   ng test --progress=false --watch=false | ||||
|   ng e2e --configuration=production --webdriver-update=false | ||||
|  | ||||
| @ -68,12 +68,13 @@ | ||||
|     rxjs "6.3.3" | ||||
| 
 | ||||
| "@angular/bazel@file:../../dist/packages-dist/bazel": | ||||
|   version "8.0.0-beta.2" | ||||
|   version "8.0.0-beta.4" | ||||
|   dependencies: | ||||
|     "@angular-devkit/architect" "^0.10.6" | ||||
|     "@angular-devkit/core" "^7.0.4" | ||||
|     "@angular-devkit/schematics" "^7.3.0-rc.0" | ||||
|     "@bazel/typescript" "^0.23.2" | ||||
|     "@microsoft/api-extractor" "^7.0.17" | ||||
|     "@schematics/angular" "^7.0.4" | ||||
|     "@types/node" "6.0.84" | ||||
|     semver "^5.6.0" | ||||
| @ -130,6 +131,51 @@ | ||||
|     source-map-support "0.5.9" | ||||
|     tsutils "2.27.2" | ||||
| 
 | ||||
| "@microsoft/api-extractor@^7.0.17": | ||||
|   version "7.0.18" | ||||
|   resolved "https://registry.yarnpkg.com/@microsoft/api-extractor/-/api-extractor-7.0.18.tgz#4eb931436495177dfcef8f2d8da3d084d10eebb6" | ||||
|   integrity sha512-puQisjyoYK1A0I8DqyBoLPV9noyFUlxTE3WsjhgJw//TrmegGHYmsRlD3rnHeXcKPM1F7sd/VKJXeXC3IPTf2Q== | ||||
|   dependencies: | ||||
|     "@microsoft/node-core-library" "3.10.0" | ||||
|     "@microsoft/ts-command-line" "4.2.3" | ||||
|     "@microsoft/tsdoc" "0.12.5" | ||||
|     "@types/node" "8.5.8" | ||||
|     "@types/z-schema" "3.16.31" | ||||
|     colors "~1.2.1" | ||||
|     lodash "~4.17.5" | ||||
|     resolve "1.8.1" | ||||
|     typescript "~3.1.6" | ||||
|     z-schema "~3.18.3" | ||||
| 
 | ||||
| "@microsoft/node-core-library@3.10.0": | ||||
|   version "3.10.0" | ||||
|   resolved "https://registry.yarnpkg.com/@microsoft/node-core-library/-/node-core-library-3.10.0.tgz#70e089534d8e20f6a0f9c7a4a12a6aeafd6a1ddb" | ||||
|   integrity sha512-1SbU+XNYAabhV9noGXHtsUVPc5ELV+oEuJQtZQoCncbOd6WAMeTgB1xFwh96hmdEXyKQyML/pnByiKocmh/nbQ== | ||||
|   dependencies: | ||||
|     "@types/fs-extra" "5.0.4" | ||||
|     "@types/jju" "~1.4.0" | ||||
|     "@types/node" "8.5.8" | ||||
|     "@types/z-schema" "3.16.31" | ||||
|     colors "~1.2.1" | ||||
|     fs-extra "~7.0.1" | ||||
|     jju "~1.4.0" | ||||
|     z-schema "~3.18.3" | ||||
| 
 | ||||
| "@microsoft/ts-command-line@4.2.3": | ||||
|   version "4.2.3" | ||||
|   resolved "https://registry.yarnpkg.com/@microsoft/ts-command-line/-/ts-command-line-4.2.3.tgz#20d6a1684148b9fc0df25ee7335c3bb227d47d4f" | ||||
|   integrity sha512-SIs4q7RcG7efBbh5Ffrf6V4jVLxWihD4NDRY3+gPiOG8CYawBzE22tTEloZ1yj/FBvBZQkQ0GYwXoPhn6ElYXA== | ||||
|   dependencies: | ||||
|     "@types/argparse" "1.0.33" | ||||
|     "@types/node" "8.5.8" | ||||
|     argparse "~1.0.9" | ||||
|     colors "~1.2.1" | ||||
| 
 | ||||
| "@microsoft/tsdoc@0.12.5": | ||||
|   version "0.12.5" | ||||
|   resolved "https://registry.yarnpkg.com/@microsoft/tsdoc/-/tsdoc-0.12.5.tgz#c448a38902ccb5601c1b2ef3b1a105012ef7712c" | ||||
|   integrity sha512-xEAyvLXo4Cter/b0EMCWUZTgXOfLOPJ/Xr52WdjVclPx9eDmNTGFtZl8Pn/nqSnZsQBNcHL0eHk/YyRyyXXpiQ== | ||||
| 
 | ||||
| "@schematics/angular@7.3.0-rc.0": | ||||
|   version "7.3.0-rc.0" | ||||
|   resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-7.3.0-rc.0.tgz#7519aa692dcaed63b9caa7d824846511905b1bfc" | ||||
| @ -162,11 +208,43 @@ | ||||
|     semver "5.6.0" | ||||
|     semver-intersect "1.4.0" | ||||
| 
 | ||||
| "@types/argparse@1.0.33": | ||||
|   version "1.0.33" | ||||
|   resolved "https://registry.yarnpkg.com/@types/argparse/-/argparse-1.0.33.tgz#2728669427cdd74a99e53c9f457ca2866a37c52d" | ||||
|   integrity sha512-VQgHxyPMTj3hIlq9SY1mctqx+Jj8kpQfoLvDlVSDNOyuYs8JYfkuY3OW/4+dO657yPmNhHpePRx0/Tje5ImNVQ== | ||||
| 
 | ||||
| "@types/fs-extra@5.0.4": | ||||
|   version "5.0.4" | ||||
|   resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-5.0.4.tgz#b971134d162cc0497d221adde3dbb67502225599" | ||||
|   integrity sha512-DsknoBvD8s+RFfSGjmERJ7ZOP1HI0UZRA3FSI+Zakhrc/Gy26YQsLI+m5V5DHxroHRJqCDLKJp7Hixn8zyaF7g== | ||||
|   dependencies: | ||||
|     "@types/node" "*" | ||||
| 
 | ||||
| "@types/jju@~1.4.0": | ||||
|   version "1.4.1" | ||||
|   resolved "https://registry.yarnpkg.com/@types/jju/-/jju-1.4.1.tgz#0a39f5f8e84fec46150a7b9ca985c3f89ad98e9f" | ||||
|   integrity sha512-LFt+YA7Lv2IZROMwokZKiPNORAV5N3huMs3IKnzlE430HWhWYZ8b+78HiwJXJJP1V2IEjinyJURuRJfGoaFSIA== | ||||
| 
 | ||||
| "@types/node@*": | ||||
|   version "11.9.4" | ||||
|   resolved "https://registry.yarnpkg.com/@types/node/-/node-11.9.4.tgz#ceb0048a546db453f6248f2d1d95e937a6f00a14" | ||||
|   integrity sha512-Zl8dGvAcEmadgs1tmSPcvwzO1YRsz38bVJQvH1RvRqSR9/5n61Q1ktcDL0ht3FXWR+ZpVmXVwN1LuH4Ax23NsA== | ||||
| 
 | ||||
| "@types/node@6.0.84": | ||||
|   version "6.0.84" | ||||
|   resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.84.tgz#193ffe5a9f42864d425ffd9739d95b753c6a1eab" | ||||
|   integrity sha512-1SvEazClhUBRNroJM3oB3xf3u2r6xGmHDGbdigqNPHvNKLl8/BtATgO9eC04ZLuovpSh0B20BF1QJxdi+qmTlg== | ||||
| 
 | ||||
| "@types/node@8.5.8": | ||||
|   version "8.5.8" | ||||
|   resolved "https://registry.yarnpkg.com/@types/node/-/node-8.5.8.tgz#92509422653f10e9c0ac18d87e0610b39f9821c7" | ||||
|   integrity sha512-8KmlRxwbKZfjUHFIt3q8TF5S2B+/E5BaAoo/3mgc5h6FJzqxXkCK/VMetO+IRDtwtU6HUvovHMBn+XRj7SV9Qg== | ||||
| 
 | ||||
| "@types/z-schema@3.16.31": | ||||
|   version "3.16.31" | ||||
|   resolved "https://registry.yarnpkg.com/@types/z-schema/-/z-schema-3.16.31.tgz#2eb1d00a5e4ec3fa58c76afde12e182b66dc5c1c" | ||||
|   integrity sha1-LrHQCl5Ow/pYx2r94S4YK2bcXBw= | ||||
| 
 | ||||
| "@yarnpkg/lockfile@1.1.0": | ||||
|   version "1.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" | ||||
| @ -277,6 +355,13 @@ are-we-there-yet@~1.1.2: | ||||
|     delegates "^1.0.0" | ||||
|     readable-stream "^2.0.6" | ||||
| 
 | ||||
| argparse@~1.0.9: | ||||
|   version "1.0.10" | ||||
|   resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" | ||||
|   integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== | ||||
|   dependencies: | ||||
|     sprintf-js "~1.0.2" | ||||
| 
 | ||||
| arr-diff@^4.0.0: | ||||
|   version "4.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" | ||||
| @ -529,11 +614,21 @@ color-name@1.1.3: | ||||
|   resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" | ||||
|   integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= | ||||
| 
 | ||||
| colors@~1.2.1: | ||||
|   version "1.2.5" | ||||
|   resolved "https://registry.yarnpkg.com/colors/-/colors-1.2.5.tgz#89c7ad9a374bc030df8013241f68136ed8835afc" | ||||
|   integrity sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg== | ||||
| 
 | ||||
| colour@~0.7.1: | ||||
|   version "0.7.1" | ||||
|   resolved "https://registry.yarnpkg.com/colour/-/colour-0.7.1.tgz#9cb169917ec5d12c0736d3e8685746df1cadf778" | ||||
|   integrity sha1-nLFpkX7F0SwHNtPoaFdG3xyt93g= | ||||
| 
 | ||||
| commander@^2.7.1: | ||||
|   version "2.19.0" | ||||
|   resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" | ||||
|   integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== | ||||
| 
 | ||||
| component-emitter@^1.2.1: | ||||
|   version "1.2.1" | ||||
|   resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" | ||||
| @ -811,6 +906,15 @@ from2@^2.1.0: | ||||
|     inherits "^2.0.1" | ||||
|     readable-stream "^2.0.0" | ||||
| 
 | ||||
| fs-extra@~7.0.1: | ||||
|   version "7.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" | ||||
|   integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== | ||||
|   dependencies: | ||||
|     graceful-fs "^4.1.2" | ||||
|     jsonfile "^4.0.0" | ||||
|     universalify "^0.1.0" | ||||
| 
 | ||||
| fs-minipass@^1.2.5: | ||||
|   version "1.2.5" | ||||
|   resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" | ||||
| @ -892,7 +996,7 @@ glob@^7.0.0, glob@^7.0.5, glob@^7.1.3: | ||||
|     once "^1.3.0" | ||||
|     path-is-absolute "^1.0.0" | ||||
| 
 | ||||
| graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2: | ||||
| graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6: | ||||
|   version "4.1.15" | ||||
|   resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" | ||||
|   integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== | ||||
| @ -1211,6 +1315,11 @@ jasmine-core@2.8.0: | ||||
|   resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.8.0.tgz#bcc979ae1f9fd05701e45e52e65d3a5d63f1a24e" | ||||
|   integrity sha1-vMl5rh+f0FcB5F5S5l06XWPxok4= | ||||
| 
 | ||||
| jju@~1.4.0: | ||||
|   version "1.4.0" | ||||
|   resolved "https://registry.yarnpkg.com/jju/-/jju-1.4.0.tgz#a3abe2718af241a2b2904f84a625970f389ae32a" | ||||
|   integrity sha1-o6vicYryQaKykE+EpiWXDzia4yo= | ||||
| 
 | ||||
| json-parse-better-errors@^1.0.0: | ||||
|   version "1.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" | ||||
| @ -1221,6 +1330,13 @@ json-schema-traverse@^0.4.1: | ||||
|   resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" | ||||
|   integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== | ||||
| 
 | ||||
| jsonfile@^4.0.0: | ||||
|   version "4.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" | ||||
|   integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= | ||||
|   optionalDependencies: | ||||
|     graceful-fs "^4.1.6" | ||||
| 
 | ||||
| jsonparse@^1.2.0: | ||||
|   version "1.3.1" | ||||
|   resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" | ||||
| @ -1262,7 +1378,17 @@ lodash.debounce@^4.0.8: | ||||
|   resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" | ||||
|   integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= | ||||
| 
 | ||||
| lodash@^4.17.10: | ||||
| lodash.get@^4.0.0: | ||||
|   version "4.4.2" | ||||
|   resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" | ||||
|   integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= | ||||
| 
 | ||||
| lodash.isequal@^4.0.0: | ||||
|   version "4.5.0" | ||||
|   resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" | ||||
|   integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= | ||||
| 
 | ||||
| lodash@^4.17.10, lodash@~4.17.5: | ||||
|   version "4.17.11" | ||||
|   resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" | ||||
|   integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== | ||||
| @ -1706,7 +1832,7 @@ path-is-absolute@^1.0.0: | ||||
|   resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" | ||||
|   integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= | ||||
| 
 | ||||
| path-parse@^1.0.6: | ||||
| path-parse@^1.0.5, path-parse@^1.0.6: | ||||
|   version "1.0.6" | ||||
|   resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" | ||||
|   integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== | ||||
| @ -1853,6 +1979,13 @@ resolve-url@^0.2.1: | ||||
|   resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" | ||||
|   integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= | ||||
| 
 | ||||
| resolve@1.8.1: | ||||
|   version "1.8.1" | ||||
|   resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" | ||||
|   integrity sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA== | ||||
|   dependencies: | ||||
|     path-parse "^1.0.5" | ||||
| 
 | ||||
| resolve@^1.1.6: | ||||
|   version "1.10.0" | ||||
|   resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.0.tgz#3bdaaeaf45cc07f375656dfd2e54ed0810b101ba" | ||||
| @ -2102,6 +2235,11 @@ split-string@^3.0.1, split-string@^3.0.2: | ||||
|   dependencies: | ||||
|     extend-shallow "^3.0.0" | ||||
| 
 | ||||
| sprintf-js@~1.0.2: | ||||
|   version "1.0.3" | ||||
|   resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" | ||||
|   integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= | ||||
| 
 | ||||
| ssri@^6.0.0, ssri@^6.0.1: | ||||
|   version "6.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" | ||||
| @ -2281,6 +2419,11 @@ typescript@3.2.2: | ||||
|   resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.2.2.tgz#fe8101c46aa123f8353523ebdcf5730c2ae493e5" | ||||
|   integrity sha512-VCj5UiSyHBjwfYacmDuc/NOk4QQixbE+Wn7MFJuS0nRuPQbof132Pw4u53dm264O8LPc2MVsc7RJNml5szurkg== | ||||
| 
 | ||||
| typescript@~3.1.6: | ||||
|   version "3.1.6" | ||||
|   resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.1.6.tgz#b6543a83cfc8c2befb3f4c8fba6896f5b0c9be68" | ||||
|   integrity sha512-tDMYfVtvpb96msS1lDX9MEdHrW4yOuZ4Kdc4Him9oU796XldPYF/t2+uKoX0BBa0hXXwDlqYQbXY5Rzjzc5hBA== | ||||
| 
 | ||||
| union-value@^1.0.0: | ||||
|   version "1.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" | ||||
| @ -2305,6 +2448,11 @@ unique-slug@^2.0.0: | ||||
|   dependencies: | ||||
|     imurmurhash "^0.1.4" | ||||
| 
 | ||||
| universalify@^0.1.0: | ||||
|   version "0.1.2" | ||||
|   resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" | ||||
|   integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== | ||||
| 
 | ||||
| unset-value@^1.0.0: | ||||
|   version "1.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" | ||||
| @ -2355,6 +2503,11 @@ validate-npm-package-name@^3.0.0: | ||||
|   dependencies: | ||||
|     builtins "^1.0.3" | ||||
| 
 | ||||
| validator@^8.0.0: | ||||
|   version "8.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/validator/-/validator-8.2.0.tgz#3c1237290e37092355344fef78c231249dab77b9" | ||||
|   integrity sha512-Yw5wW34fSv5spzTXNkokD6S6/Oq92d8q/t14TqsS3fAiA1RYnxSFSIZ+CY3n6PGGRCq5HhJTSepQvFUS2QUDxA== | ||||
| 
 | ||||
| which@^1.3.1: | ||||
|   version "1.3.1" | ||||
|   resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" | ||||
| @ -2424,3 +2577,14 @@ yargs@^3.10.0: | ||||
|     string-width "^1.0.1" | ||||
|     window-size "^0.1.4" | ||||
|     y18n "^3.2.0" | ||||
| 
 | ||||
| z-schema@~3.18.3: | ||||
|   version "3.18.4" | ||||
|   resolved "https://registry.yarnpkg.com/z-schema/-/z-schema-3.18.4.tgz#ea8132b279533ee60be2485a02f7e3e42541a9a2" | ||||
|   integrity sha512-DUOKC/IhbkdLKKiV89gw9DUauTV8U/8yJl1sjf6MtDmzevLKOF2duNJ495S3MFVjqZarr+qNGCPbkg4mu4PpLw== | ||||
|   dependencies: | ||||
|     lodash.get "^4.0.0" | ||||
|     lodash.isequal "^4.0.0" | ||||
|     validator "^8.0.0" | ||||
|   optionalDependencies: | ||||
|     commander "^2.7.1" | ||||
|  | ||||
| @ -20,14 +20,6 @@ http_archive( | ||||
|     url = "https://github.com/bazelbuild/rules_nodejs/releases/download/%s/rules_nodejs-%s.tar.gz" % (RULES_NODEJS_VERSION, RULES_NODEJS_VERSION), | ||||
| ) | ||||
| 
 | ||||
| # The @angular repo contains rule for building Angular applications | ||||
| ANGULAR_VERSION = "<%= ANGULAR_VERSION %>" | ||||
| http_archive( | ||||
|     name = "angular", | ||||
|     url = "https://github.com/angular/angular/archive/%s.zip" % ANGULAR_VERSION, | ||||
|     strip_prefix = "angular-%s" % ANGULAR_VERSION, | ||||
| ) | ||||
| 
 | ||||
| <% if (sass) { %> | ||||
| # Rules for compiling sass | ||||
| RULES_SASS_VERSION = "<%= RULES_SASS_VERSION %>" | ||||
| @ -46,9 +38,7 @@ check_bazel_version("0.18.0") | ||||
| node_repositories() | ||||
| yarn_install( | ||||
|     name = "npm", | ||||
|     # Need a reference to @angular here so that Bazel sets up the | ||||
|     # external repository before calling yarn_install | ||||
|     data = ["@angular//:LICENSE"], | ||||
|     data = ["//:angular-metadata.tsconfig.json"], | ||||
|     package_json = "//:package.json", | ||||
|     yarn_lock = "//:yarn.lock", | ||||
| ) | ||||
| @ -72,5 +62,5 @@ ts_setup_workspace() | ||||
| load("@io_bazel_rules_sass//sass:sass_repositories.bzl", "sass_repositories") | ||||
| sass_repositories() | ||||
| <% } %> | ||||
| load("@angular//:index.bzl", "ng_setup_workspace") | ||||
| load("@npm_angular_bazel//:index.bzl", "ng_setup_workspace") | ||||
| ng_setup_workspace() | ||||
|  | ||||
| @ -1,5 +1,5 @@ | ||||
| load("@build_bazel_rules_typescript//:defs.bzl", "ts_library") | ||||
| load("@angular//:index.bzl", "protractor_web_test_suite") | ||||
| load("@npm_angular_bazel//:index.bzl", "protractor_web_test_suite") | ||||
| 
 | ||||
| ts_library( | ||||
|     name = "e2e_lib", | ||||
| @ -22,7 +22,7 @@ ts_library( | ||||
| protractor_web_test_suite( | ||||
|     name = "prodserver_test", | ||||
|     data = [ | ||||
|       "@angular//" + "packages/bazel/src/protractor/utils", | ||||
|       "@npm//@angular/bazel", | ||||
|       "@npm//protractor", | ||||
|     ], | ||||
|     on_prepare = ":protractor.on-prepare.js", | ||||
| @ -33,7 +33,7 @@ protractor_web_test_suite( | ||||
| protractor_web_test_suite( | ||||
|     name = "devserver_test", | ||||
|     data = [ | ||||
|       "@angular//" + "packages/bazel/src/protractor/utils", | ||||
|       "@npm//@angular/bazel", | ||||
|       "@npm//protractor", | ||||
|     ], | ||||
|     on_prepare = ":protractor.on-prepare.js", | ||||
|  | ||||
| @ -1,6 +1,6 @@ | ||||
| package(default_visibility = ["//visibility:public"]) | ||||
| 
 | ||||
| load("@angular//:index.bzl", "ng_module") | ||||
| load("@npm_angular_bazel//:index.bzl", "ng_module") | ||||
| load("@build_bazel_rules_karma//:defs.bzl", "ts_web_test_suite") | ||||
| load("@build_bazel_rules_nodejs//:defs.bzl", "rollup_bundle", "history_server") | ||||
| load("@build_bazel_rules_nodejs//internal/web_package:web_package.bzl", "web_package") | ||||
| @ -37,9 +37,9 @@ ng_module( | ||||
|       "**/*.html", | ||||
|     ])<% if (sass) { %> + [":styles"]<% } %>, | ||||
|     deps = [ | ||||
|         "@angular//packages/core", | ||||
|         "@angular//packages/platform-browser",<% if (routing) { %> | ||||
|         "@angular//packages/router",<% } %> | ||||
|         "@npm//@angular/core", | ||||
|         "@npm//@angular/platform-browser",<% if (routing) { %> | ||||
|         "@npm//@angular/router",<% } %> | ||||
|         "@npm//@types", | ||||
|         "@npm//rxjs", | ||||
|     ], | ||||
| @ -79,6 +79,10 @@ ts_devserver( | ||||
|     entry_module = "<%= utils.underscore(name) %>/src/main.dev", | ||||
|     serving_path = "/bundle.min.js", | ||||
|     scripts = [ | ||||
|         "@npm//node_modules/@angular/common:bundles/common.umd.js", | ||||
|         "@npm//node_modules/@angular/common:bundles/common-http.umd.js", | ||||
|         "@npm//node_modules/@angular/core:bundles/core.umd.js", | ||||
|         "@npm//node_modules/@angular/platform-browser:bundles/platform-browser.umd.js", | ||||
|         "@npm//node_modules/tslib:tslib.js", | ||||
|         ":rxjs_umd_modules", | ||||
|     ], | ||||
| @ -95,7 +99,7 @@ ts_library( | ||||
|     srcs = glob(["**/*.spec.ts"]), | ||||
|     deps = [ | ||||
|         ":src", | ||||
|         "@angular//packages/core/testing", | ||||
|         "@npm//@angular/core", | ||||
|         "@npm//@types", | ||||
|     ], | ||||
| ) | ||||
| @ -107,15 +111,26 @@ ts_library( | ||||
|         "initialize_testbed.ts", | ||||
|     ], | ||||
|     deps = [ | ||||
|         "@angular//packages/core/testing", | ||||
|         "@angular//packages/platform-browser-dynamic/testing", | ||||
|         "@npm//@angular/core", | ||||
|         "@npm//@angular/platform-browser-dynamic", | ||||
|         "@npm//@types", | ||||
|     ], | ||||
| ) | ||||
| 
 | ||||
| ts_web_test_suite( | ||||
|     name = "test", | ||||
|     srcs = ["@npm//node_modules/tslib:tslib.js"], | ||||
|     srcs = [ | ||||
|         "@npm//node_modules/@angular/common:bundles/common.umd.js", | ||||
|         "@npm//node_modules/@angular/compiler:bundles/compiler.umd.js", | ||||
|         "@npm//node_modules/@angular/compiler:bundles/compiler-testing.umd.js", | ||||
|         "@npm//node_modules/@angular/core:bundles/core.umd.js", | ||||
|         "@npm//node_modules/@angular/core:bundles/core-testing.umd.js", | ||||
|         "@npm//node_modules/@angular/platform-browser:bundles/platform-browser.umd.js", | ||||
|         "@npm//node_modules/@angular/platform-browser:bundles/platform-browser-testing.umd.js", | ||||
|         "@npm//node_modules/@angular/platform-browser-dynamic:bundles/platform-browser-dynamic.umd.js", | ||||
|         "@npm//node_modules/@angular/platform-browser-dynamic:bundles/platform-browser-dynamic-testing.umd.js", | ||||
|         "@npm//node_modules/tslib:tslib.js", | ||||
|     ], | ||||
|     runtime_deps = [ | ||||
|         ":initialize_testbed", | ||||
|     ], | ||||
|  | ||||
| @ -9,32 +9,12 @@ | ||||
|  */ | ||||
| 
 | ||||
| import {strings} from '@angular-devkit/core'; | ||||
| import {Rule, SchematicContext, SchematicsException, Tree, apply, applyTemplates, mergeWith, move, url} from '@angular-devkit/schematics'; | ||||
| import {Rule, SchematicContext, Tree, apply, applyTemplates, mergeWith, url} from '@angular-devkit/schematics'; | ||||
| import {getWorkspace} from '@schematics/angular/utility/config'; | ||||
| import {latestVersions} from '@schematics/angular/utility/latest-versions'; | ||||
| import {validateProjectName} from '@schematics/angular/utility/validation'; | ||||
| 
 | ||||
| import {Schema as BazelWorkspaceOptions} from './schema'; | ||||
| 
 | ||||
| 
 | ||||
| /** | ||||
|  * Look for package.json file for package with `packageName` in node_modules and | ||||
|  * extract its version. | ||||
|  */ | ||||
| function findVersion(packageName: string, host: Tree): string|null { | ||||
|   const candidate = `node_modules/${packageName}/package.json`; | ||||
|   if (host.exists(candidate)) { | ||||
|     try { | ||||
|       const packageJson = JSON.parse(host.read(candidate).toString()); | ||||
|       if (packageJson.name === packageName && packageJson.version) { | ||||
|         return packageJson.version; | ||||
|       } | ||||
|     } catch { | ||||
|     } | ||||
|   } | ||||
|   return null; | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Clean the version string and return version in the form "1.2.3". Return | ||||
|  * null if version string is invalid. This is similar to semver.clean() but | ||||
| @ -72,20 +52,6 @@ export default function(options: BazelWorkspaceOptions): Rule { | ||||
|     } | ||||
|     validateProjectName(name); | ||||
| 
 | ||||
|     // If the project already has some deps installed, Bazel should use existing
 | ||||
|     // versions.
 | ||||
|     const existingVersions = { | ||||
|       Angular: findVersion('@angular/core', host), | ||||
|       RxJs: findVersion('rxjs', host), | ||||
|     }; | ||||
| 
 | ||||
|     Object.keys(existingVersions).forEach((name: 'Angular' | 'RxJs') => { | ||||
|       const version = existingVersions[name] as string; | ||||
|       if (version) { | ||||
|         context.logger.info(`Bazel will reuse existing version for ${name}: ${version}`); | ||||
|       } | ||||
|     }); | ||||
| 
 | ||||
|     if (!host.exists('yarn.lock')) { | ||||
|       host.create('yarn.lock', ''); | ||||
|     } | ||||
| @ -93,8 +59,6 @@ export default function(options: BazelWorkspaceOptions): Rule { | ||||
|     const workspaceVersions = { | ||||
|       'RULES_NODEJS_VERSION': '0.18.6', | ||||
|       'RULES_NODEJS_SHA256': '1416d03823fed624b49a0abbd9979f7c63bbedfd37890ddecedd2fe25cccebc6', | ||||
|       'ANGULAR_VERSION': existingVersions.Angular || clean(latestVersions.Angular), | ||||
|       // TODO(kyliau): Consider moving this to latest-versions.ts
 | ||||
|       'RULES_SASS_VERSION': '1.17.0', | ||||
|     }; | ||||
| 
 | ||||
|  | ||||
| @ -61,7 +61,7 @@ describe('Bazel-workspace Schematic', () => { | ||||
|     host = schematicRunner.runSchematic('bazel-workspace', options, host); | ||||
|     expect(host.files).toContain('/src/BUILD.bazel'); | ||||
|     const content = host.readContent('/src/BUILD.bazel'); | ||||
|     expect(content).toContain('@angular//packages/router'); | ||||
|     expect(content).toContain('@npm//@angular/router'); | ||||
|   }); | ||||
| 
 | ||||
|   describe('WORKSPACE', () => { | ||||
|  | ||||
| @ -44,7 +44,6 @@ function addDevDependenciesToPackageJson(options: Schema) { | ||||
|     const devDependencies: {[k: string]: string} = { | ||||
|       '@angular/bazel': angularCoreVersion, | ||||
|       '@angular/upgrade': angularCoreVersion, | ||||
|       // TODO(kyliau): Consider moving this to latest-versions.ts
 | ||||
|       '@bazel/bazel': '^0.22.1', | ||||
|       '@bazel/ibazel': '^0.9.0', | ||||
|       '@bazel/karma': '^0.23.2', | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user