@samitouri / QOS-React-2 / commits / 0e4005e0a1

Added command to build Chrome CRX

Brian Vaughn committed Jun 18, 2019 at 15:44 UTC 0e4005e0a19761bff83c0329b4d46078c689ff37
5 files changed +117 -7
.gitignore
+2 -1
@@ -12,4 +12,5 @@ yarn-error.log
12 yarn-error.log
13 .vscode
14 .idea
15 -.watchmanconfig
\ No newline at end of file
15 +.watchmanconfig
16 +*.pem
\ No newline at end of file
package.json
+4 -1
@@ -36,6 +36,7 @@
36 "build:extension": "cross-env NODE_ENV=production yarn run build:extension:chrome && yarn run build:extension:firefox",
37 "build:extension:dev": "cross-env NODE_ENV=development yarn run build:extension:chrome && yarn run build:extension:firefox",
38 "build:extension:chrome": "cross-env NODE_ENV=production node ./shells/browser/chrome/build",
39 + "build:extension:chrome:crx": "cross-env NODE_ENV=production node ./shells/browser/chrome/build --crx",
40 "build:extension:chrome:dev": "cross-env NODE_ENV=development node ./shells/browser/chrome/build",
41 "build:extension:firefox": "cross-env NODE_ENV=production node ./shells/browser/firefox/build",
42 "build:extension:firefox:dev": "cross-env NODE_ENV=development node ./shells/browser/firefox/build",
@@ -90,6 +91,7 @@
91 "cli-spinners": "^1.0.0",
92 "clipboard-js": "^0.3.6",
93 "cross-env": "^5.2.0",
94 + "crx": "^5.0.0",
95 "css-loader": "^1.0.1",
96 "error-stack-parser": "^2.0.2",
97 "es6-symbol": "3.0.2",
@@ -149,6 +151,7 @@
151 "web-ext": "^3.0.0",
152 "webpack": "^4.26.0",
153 "webpack-cli": "^3.1.2",
152 - "webpack-dev-server": "^3.3.1"
154 + "webpack-dev-server": "^3.3.1",
155 + "yargs": "^13.2.4"
156 }
157 }
shells/browser/chrome/build.js
+21
@@ -1,11 +1,32 @@
1 #!/usr/bin/env node
2
3 const chalk = require('chalk');
4 +const { execSync } = require('child_process');
5 +const { existsSync } = require('fs');
6 +const { join, relative } = require('path');
7 +const { argv } = require('yargs');
8 const build = require('../shared/build');
9
10 const main = async () => {
11 + const { crx, keyPath } = argv;
12 +
13 + if (crx) {
14 + if (!keyPath || !existsSync(keyPath)) {
15 + console.error('Must specify a key file (.pem) to build CRX');
16 + process.exit(1);
17 + }
18 + }
19 +
20 await build('chrome');
21
22 + if (crx) {
23 + const cwd = join(__dirname, 'build');
24 + const relativeKeyPath = join(relative(cwd, process.cwd()), keyPath);
25 + execSync(`crx pack ./unpacked -o ReactDevTools.crx -p ${relativeKeyPath}`, {
26 + cwd,
27 + });
28 + }
29 +
30 console.log(chalk.green('\nThe Chrome extension has been built!'));
31 console.log(chalk.green('You can test this build by running:'));
32 console.log(chalk.gray('\n# From the react-devtools root directory:'));
shells/browser/chrome/manifest.json
+1 -1
@@ -2,7 +2,7 @@
2 "manifest_version": 2,
3 "name": "React Developer Tools",
4 "description": "Adds React debugging tools to the Chrome Developer Tools.",
5 - "version": "4.0.0",
5 + "version": "4.0.0.0",
6 "version_name": "4.0.0",
7
8 "minimum_chrome_version": "49",
yarn.lock
+89 -4
@@ -1842,7 +1842,7 @@ asn1.js@^4.0.0:
1842 inherits "^2.0.1"
1843 minimalistic-assert "^1.0.0"
1844
1845 -asn1@~0.2.3:
1845 +asn1@^0.2.4, asn1@~0.2.3:
1846 version "0.2.4"
1847 resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
1848 integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==
@@ -3119,6 +3119,15 @@ cliui@^4.0.0:
3119 strip-ansi "^4.0.0"
3120 wrap-ansi "^2.0.0"
3121
3122 +cliui@^5.0.0:
3123 + version "5.0.0"
3124 + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5"
3125 + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==
3126 + dependencies:
3127 + string-width "^3.1.0"
3128 + strip-ansi "^5.2.0"
3129 + wrap-ansi "^5.1.0"
3130 +
3131 clone-stats@^0.0.1:
3132 version "0.0.1"
3133 resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1"
@@ -3210,7 +3219,7 @@ commander@^2.11.0, commander@^2.14.1, commander@^2.9.0:
3219 resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a"
3220 integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==
3221
3213 -commander@^2.3.0, commander@^2.6.0:
3222 +commander@^2.20.0, commander@^2.3.0, commander@^2.6.0:
3223 version "2.20.0"
3224 resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422"
3225 integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==
@@ -3708,6 +3717,16 @@ crx-parser@0.1.2:
3717 resolved "https://registry.yarnpkg.com/crx-parser/-/crx-parser-0.1.2.tgz#7eeeed9eddc95e22c189382e34624044a89a5a6d"
3718 integrity sha1-fu7tnt3JXiLBiTguNGJARKiaWm0=
3719
3720 +crx@^5.0.0:
3721 + version "5.0.0"
3722 + resolved "https://registry.yarnpkg.com/crx/-/crx-5.0.0.tgz#da5edd267bc273f6af4ec51bb24c99c3275cb60c"
3723 + integrity sha512-xm+94OuKy3KWV46gzsZueYgCnawx8iHFL7Xudd/LLLZKgxIYv6OHYFrLmX7B0FvPLO2/m1sOgGLt7z+MXz+/ow==
3724 + dependencies:
3725 + archiver "^3.0.0"
3726 + commander "^2.20.0"
3727 + node-rsa "^1.0.5"
3728 + pbf "^3.2.0"
3729 +
3730 cryptiles@3.x.x:
3731 version "3.1.2"
3732 resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe"
@@ -6275,6 +6294,11 @@ icss-utils@^2.1.0:
6294 dependencies:
6295 postcss "^6.0.1"
6296
6297 +ieee754@^1.1.12:
6298 + version "1.1.13"
6299 + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84"
6300 + integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==
6301 +
6302 ieee754@^1.1.4:
6303 version "1.1.12"
6304 resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b"
@@ -8710,6 +8734,13 @@ node-releases@^1.1.8:
8734 dependencies:
8735 semver "^5.3.0"
8736
8737 +node-rsa@^1.0.5:
8738 + version "1.0.5"
8739 + resolved "https://registry.yarnpkg.com/node-rsa/-/node-rsa-1.0.5.tgz#854dc1b275729d69bc25883f83ca80705db9262e"
8740 + integrity sha512-9o51yfV167CtQANnuAf+5owNs7aIMsAKVLhNaKuRxihsUUnfoBMN5OTVOK/2mHSOWaWq9zZBiRM3bHORbTZqrg==
8741 + dependencies:
8742 + asn1 "^0.2.4"
8743 +
8744 node-version@^1.0.0:
8745 version "1.0.0"
8746 resolved "https://registry.yarnpkg.com/node-version/-/node-version-1.0.0.tgz#1b9b9584a9a7f7a6123f215cd14a652bf21ab19e"
@@ -9288,6 +9319,14 @@ path-type@^3.0.0:
9319 dependencies:
9320 pify "^3.0.0"
9321
9322 +pbf@^3.2.0:
9323 + version "3.2.0"
9324 + resolved "https://registry.yarnpkg.com/pbf/-/pbf-3.2.0.tgz#e76f9f5114e395c25077ad6fe463b3507d6877fc"
9325 + integrity sha512-98Eh7rsJNJF/Im6XYMLaOW3cLnNyedlOd6hu3iWMD5I7FZGgpw8yN3vQBrmLbLodu7G784Irb9Qsv2yFrxSAGw==
9326 + dependencies:
9327 + ieee754 "^1.1.12"
9328 + resolve-protobuf-schema "^2.1.0"
9329 +
9330 pbkdf2-compat@2.0.1:
9331 version "2.0.1"
9332 resolved "https://registry.yarnpkg.com/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz#b6e0c8fa99494d94e0511575802a59a5c142f288"
@@ -9595,6 +9634,11 @@ prop-types@^15.5.10, prop-types@^15.6.2, prop-types@^15.7.2:
9634 object-assign "^4.1.1"
9635 react-is "^16.8.1"
9636
9637 +protocol-buffers-schema@^3.3.1:
9638 + version "3.3.2"
9639 + resolved "https://registry.yarnpkg.com/protocol-buffers-schema/-/protocol-buffers-schema-3.3.2.tgz#00434f608b4e8df54c59e070efeefc37fb4bb859"
9640 + integrity sha512-Xdayp8sB/mU+sUV4G7ws8xtYMGdQnxbeIfLjyO9TZZRJdztBGhlmbI5x1qcY4TG5hBkIKGnc28i7nXxaugu88w==
9641 +
9642 proxy-addr@~2.0.4:
9643 version "2.0.5"
9644 resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34"
@@ -10340,6 +10384,13 @@ resolve-from@^4.0.0:
10384 resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
10385 integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
10386
10387 +resolve-protobuf-schema@^2.1.0:
10388 + version "2.1.0"
10389 + resolved "https://registry.yarnpkg.com/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz#9ca9a9e69cf192bbdaf1006ec1973948aa4a3758"
10390 + integrity sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==
10391 + dependencies:
10392 + protocol-buffers-schema "^3.3.1"
10393 +
10394 resolve-url@^0.2.1:
10395 version "0.2.1"
10396 resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
@@ -11194,7 +11245,7 @@ string-width@^1.0.1, string-width@^1.0.2:
11245 is-fullwidth-code-point "^2.0.0"
11246 strip-ansi "^4.0.0"
11247
11197 -string-width@^3.0.0:
11248 +string-width@^3.0.0, string-width@^3.1.0:
11249 version "3.1.0"
11250 resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
11251 integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==
@@ -11249,7 +11300,7 @@ strip-ansi@^4.0.0:
11300 dependencies:
11301 ansi-regex "^3.0.0"
11302
11252 -strip-ansi@^5.0.0, strip-ansi@^5.1.0:
11303 +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0:
11304 version "5.2.0"
11305 resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
11306 integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
@@ -12358,6 +12409,15 @@ wrap-ansi@^3.0.1:
12409 string-width "^2.1.1"
12410 strip-ansi "^4.0.0"
12411
12412 +wrap-ansi@^5.1.0:
12413 + version "5.1.0"
12414 + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09"
12415 + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==
12416 + dependencies:
12417 + ansi-styles "^3.2.0"
12418 + string-width "^3.0.0"
12419 + strip-ansi "^5.0.0"
12420 +
12421 wrappy@1:
12422 version "1.0.2"
12423 resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
@@ -12488,6 +12548,14 @@ yargs-parser@^13.0.0:
12548 camelcase "^5.0.0"
12549 decamelize "^1.2.0"
12550
12551 +yargs-parser@^13.1.0:
12552 + version "13.1.1"
12553 + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0"
12554 + integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==
12555 + dependencies:
12556 + camelcase "^5.0.0"
12557 + decamelize "^1.2.0"
12558 +
12559 yargs-parser@^4.2.0:
12560 version "4.2.1"
12561 resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c"
@@ -12556,6 +12624,23 @@ yargs@6.6.0:
12624 y18n "^3.2.1"
12625 yargs-parser "^4.2.0"
12626
12627 +yargs@^13.2.4:
12628 + version "13.2.4"
12629 + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.4.tgz#0b562b794016eb9651b98bd37acf364aa5d6dc83"
12630 + integrity sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==
12631 + dependencies:
12632 + cliui "^5.0.0"
12633 + find-up "^3.0.0"
12634 + get-caller-file "^2.0.1"
12635 + os-locale "^3.1.0"
12636 + require-directory "^2.1.1"
12637 + require-main-filename "^2.0.0"
12638 + set-blocking "^2.0.0"
12639 + string-width "^3.0.0"
12640 + which-module "^2.0.0"
12641 + y18n "^4.0.0"
12642 + yargs-parser "^13.1.0"
12643 +
12644 yargs@^8.0.2:
12645 version "8.0.2"
12646 resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360"