From 28869eb3b7f25130b11eb5a1ad0d340ea0541937 Mon Sep 17 00:00:00 2001 From: Chase Holland Date: Wed, 20 Jun 2018 09:31:18 -0700 Subject: [PATCH] fix: allow more URLs for debugging ui, pnpm support (#443) * making babelRegister work with pnpm package structure * adding babel polyfill dep * switching to webpack master to resolve pnpm issue fixed here https://github.com/webpack/webpack/pull/7501 * adding correct urls from chrome debugging * setting webpack to a release version with pnpm fix * updating test snapshots after config change * removing unneeded escape char in babelRegister --- package.json | 3 +- src/babelRegister.js | 5 +- src/server/middleware/devToolsMiddleware.js | 2 + .../__snapshots__/getConfig.test.js.snap | 7 +- .../makeReactNativeConfig.test.js.snap | 2 +- src/utils/makeReactNativeConfig.js | 3 +- yarn.lock | 198 +++++++++++++++++- 7 files changed, 202 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index 903d69fd..6892aa2a 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,7 @@ "babel-plugin-transform-flow-strip-types": "^6.22.0", "babel-plugin-transform-object-rest-spread": "^6.23.0", "babel-plugin-transform-react-jsx": "^6.24.1", + "babel-polyfill": "^6.26.0", "babel-preset-env": "^1.2.2", "babel-register": "^6.24.0", "camelcase-keys": "^4.0.0", @@ -78,7 +79,7 @@ "source-map": "^0.5.6", "strip-ansi": "^3.0.1", "thread-loader": "^1.1.5", - "webpack": "^4.6.0", + "webpack": "^4.12.0", "webpack-hot-middleware": "^2.22.1", "ws": "^2.2.2", "xpipe": "^1.0.5" diff --git a/src/babelRegister.js b/src/babelRegister.js index 79bca860..1e06c227 100644 --- a/src/babelRegister.js +++ b/src/babelRegister.js @@ -20,7 +20,7 @@ function resolve(presetsOrPlugins, type) { * To prevent `babel-register` from reading foreign Babel * configs, `babelrc` has to be set to `false` and Haul's * Babel config inlined into `babel-register`'s options. - * + * * Also presets and plugins need to be resolved to * Haul's `node_modules` directory, otherwise Babel would * search from them in project's `node_modules`. @@ -28,7 +28,8 @@ function resolve(presetsOrPlugins, type) { require('babel-register')( Object.assign( { - ignore: /node_modules(?!\/haul)/, + // Use a PNPM-compatible search pattern for node_modules. + ignore: /node_modules(?!.*[/\\]haul)/, retainLines: true, sourceMaps: 'inline', babelrc: false, diff --git a/src/server/middleware/devToolsMiddleware.js b/src/server/middleware/devToolsMiddleware.js index bab865ff..a2f7145a 100644 --- a/src/server/middleware/devToolsMiddleware.js +++ b/src/server/middleware/devToolsMiddleware.js @@ -52,6 +52,7 @@ function devToolsMiddleware(debuggerProxy) { /** * Request for the debugger frontend */ + case '/debugger-ui/': case '/debugger-ui': { const readStream = fs.createReadStream( path.join(__dirname, '../assets/debugger.html') @@ -64,6 +65,7 @@ function devToolsMiddleware(debuggerProxy) { /** * Request for the debugger worker */ + case '/debugger-ui/debuggerWorker.js': case '/debuggerWorker.js': { const readStream = fs.createReadStream( path.join(__dirname, '../assets/debuggerWorker.js') diff --git a/src/utils/__tests__/__snapshots__/getConfig.test.js.snap b/src/utils/__tests__/__snapshots__/getConfig.test.js.snap index be1a2930..f8f76300 100644 --- a/src/utils/__tests__/__snapshots__/getConfig.test.js.snap +++ b/src/utils/__tests__/__snapshots__/getConfig.test.js.snap @@ -34,7 +34,7 @@ exports[`creates config: diff ios/android config 1`] = ` }, \\"plugins\\": Array [ CaseSensitivePathsPlugin { -@@ -127,11 +127,11 @@ +@@ -126,11 +126,11 @@ \\"resolve\\": Object { \\"alias\\": Object { \\"react-proxy\\": \\"@zamotany/react-proxy\\", @@ -75,7 +75,7 @@ Object { }, }, Object { - "exclude": /node_modules\\\\/\\(\\?!react\\|@expo\\|pretty-format\\|haul\\|metro\\)/, + "exclude": /node_modules\\(\\?!\\.\\*\\[\\\\/\\\\\\\\\\]\\(react\\|@expo\\|pretty-format\\|haul\\|metro\\)\\)/, "test": /\\\\\\.js\\$/, "use": Array [ Object { @@ -167,8 +167,7 @@ Object { //# sourceMappingURL=[url]", }, BannerPlugin { - "banner": "if (this && !this.self) { this.self = this; }; -", + "banner": [Function], "options": Object { "banner": "if (this && !this.self) { this.self = this; }; ", diff --git a/src/utils/__tests__/__snapshots__/makeReactNativeConfig.test.js.snap b/src/utils/__tests__/__snapshots__/makeReactNativeConfig.test.js.snap index 9ac1c52b..2d1ac0cd 100644 --- a/src/utils/__tests__/__snapshots__/makeReactNativeConfig.test.js.snap +++ b/src/utils/__tests__/__snapshots__/makeReactNativeConfig.test.js.snap @@ -34,7 +34,7 @@ exports[`makeReactNativeConfig creates config from defaults: diff ios/android co }, \\"plugins\\": Array [ CaseSensitivePathsPlugin { -@@ -127,11 +127,11 @@ +@@ -126,11 +126,11 @@ \\"resolve\\": Object { \\"alias\\": Object { \\"react-proxy\\": \\"@zamotany/react-proxy\\", diff --git a/src/utils/makeReactNativeConfig.js b/src/utils/makeReactNativeConfig.js index 37d0ac01..cbbb410f 100644 --- a/src/utils/makeReactNativeConfig.js +++ b/src/utils/makeReactNativeConfig.js @@ -92,7 +92,8 @@ const getDefaultConfig = ({ { parser: { requireEnsure: false } }, { test: /\.js$/, - exclude: /node_modules\/(?!react|@expo|pretty-format|haul|metro)/, + // eslint-disable-next-line no-useless-escape + exclude: /node_modules(?!.*[\/\\](react|@expo|pretty-format|haul|metro))/, use: [ { loader: require.resolve('babel-loader'), diff --git a/yarn.lock b/yarn.lock index 08da460f..8d35ced6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10,6 +10,142 @@ esutils "^2.0.2" js-tokens "^3.0.0" +"@webassemblyjs/ast@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.5.12.tgz#a9acbcb3f25333c4edfa1fdf3186b1ccf64e6664" + dependencies: + "@webassemblyjs/helper-module-context" "1.5.12" + "@webassemblyjs/helper-wasm-bytecode" "1.5.12" + "@webassemblyjs/wast-parser" "1.5.12" + debug "^3.1.0" + mamacro "^0.0.3" + +"@webassemblyjs/floating-point-hex-parser@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.5.12.tgz#0f36044ffe9652468ce7ae5a08716a4eeff9cd9c" + +"@webassemblyjs/helper-api-error@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.5.12.tgz#05466833ff2f9d8953a1a327746e1d112ea62aaf" + +"@webassemblyjs/helper-buffer@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.5.12.tgz#1f0de5aaabefef89aec314f7f970009cd159c73d" + dependencies: + debug "^3.1.0" + +"@webassemblyjs/helper-code-frame@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.5.12.tgz#3cdc1953093760d1c0f0caf745ccd62bdb6627c7" + dependencies: + "@webassemblyjs/wast-printer" "1.5.12" + +"@webassemblyjs/helper-fsm@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.5.12.tgz#6bc1442b037f8e30f2e57b987cee5c806dd15027" + +"@webassemblyjs/helper-module-context@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.5.12.tgz#b5588ca78b33b8a0da75f9ab8c769a3707baa861" + dependencies: + debug "^3.1.0" + mamacro "^0.0.3" + +"@webassemblyjs/helper-wasm-bytecode@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.5.12.tgz#d12a3859db882a448891a866a05d0be63785b616" + +"@webassemblyjs/helper-wasm-section@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.5.12.tgz#ff9fe1507d368ad437e7969d25e8c1693dac1884" + dependencies: + "@webassemblyjs/ast" "1.5.12" + "@webassemblyjs/helper-buffer" "1.5.12" + "@webassemblyjs/helper-wasm-bytecode" "1.5.12" + "@webassemblyjs/wasm-gen" "1.5.12" + debug "^3.1.0" + +"@webassemblyjs/ieee754@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.5.12.tgz#ee9574bc558888f13097ce3e7900dff234ea19a4" + dependencies: + ieee754 "^1.1.11" + +"@webassemblyjs/leb128@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.5.12.tgz#0308eec652765ee567d8a5fa108b4f0b25b458e1" + dependencies: + leb "^0.3.0" + +"@webassemblyjs/utf8@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.5.12.tgz#d5916222ef314bf60d6806ed5ac045989bfd92ce" + +"@webassemblyjs/wasm-edit@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.5.12.tgz#821c9358e644a166f2c910e5af1b46ce795a17aa" + dependencies: + "@webassemblyjs/ast" "1.5.12" + "@webassemblyjs/helper-buffer" "1.5.12" + "@webassemblyjs/helper-wasm-bytecode" "1.5.12" + "@webassemblyjs/helper-wasm-section" "1.5.12" + "@webassemblyjs/wasm-gen" "1.5.12" + "@webassemblyjs/wasm-opt" "1.5.12" + "@webassemblyjs/wasm-parser" "1.5.12" + "@webassemblyjs/wast-printer" "1.5.12" + debug "^3.1.0" + +"@webassemblyjs/wasm-gen@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.5.12.tgz#0b7ccfdb93dab902cc0251014e2e18bae3139bcb" + dependencies: + "@webassemblyjs/ast" "1.5.12" + "@webassemblyjs/helper-wasm-bytecode" "1.5.12" + "@webassemblyjs/ieee754" "1.5.12" + "@webassemblyjs/leb128" "1.5.12" + "@webassemblyjs/utf8" "1.5.12" + +"@webassemblyjs/wasm-opt@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.5.12.tgz#bd758a8bc670f585ff1ae85f84095a9e0229cbc9" + dependencies: + "@webassemblyjs/ast" "1.5.12" + "@webassemblyjs/helper-buffer" "1.5.12" + "@webassemblyjs/wasm-gen" "1.5.12" + "@webassemblyjs/wasm-parser" "1.5.12" + debug "^3.1.0" + +"@webassemblyjs/wasm-parser@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.5.12.tgz#7b10b4388ecf98bd7a22e702aa62ec2f46d0c75e" + dependencies: + "@webassemblyjs/ast" "1.5.12" + "@webassemblyjs/helper-api-error" "1.5.12" + "@webassemblyjs/helper-wasm-bytecode" "1.5.12" + "@webassemblyjs/ieee754" "1.5.12" + "@webassemblyjs/leb128" "1.5.12" + "@webassemblyjs/utf8" "1.5.12" + +"@webassemblyjs/wast-parser@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.5.12.tgz#9cf5ae600ecae0640437b5d4de5dd6b6088d0d8b" + dependencies: + "@webassemblyjs/ast" "1.5.12" + "@webassemblyjs/floating-point-hex-parser" "1.5.12" + "@webassemblyjs/helper-api-error" "1.5.12" + "@webassemblyjs/helper-code-frame" "1.5.12" + "@webassemblyjs/helper-fsm" "1.5.12" + long "^3.2.0" + mamacro "^0.0.3" + +"@webassemblyjs/wast-printer@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.5.12.tgz#563ca4d01b22d21640b2463dc5e3d7f7d9dac520" + dependencies: + "@webassemblyjs/ast" "1.5.12" + "@webassemblyjs/wast-parser" "1.5.12" + long "^3.2.0" + "@zamotany/react-proxy@3.0.0-alpha.4": version "3.0.0-alpha.4" resolved "https://registry.yarnpkg.com/@zamotany/react-proxy/-/react-proxy-3.0.0-alpha.4.tgz#2eb819b5e0caa231be84c1b0e291aec07e089a8f" @@ -79,6 +215,10 @@ acorn@^5.3.0: version "5.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.4.1.tgz#fdc58d9d17f4a4e98d102ded826a9b9759125102" +acorn@^5.6.2: + version "5.7.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.1.tgz#f095829297706a7c9776958c0afc8930a9b9d9d8" + ajv-keywords@^1.0.0: version "1.5.1" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" @@ -1009,6 +1149,14 @@ babel-plugin-transform-strict-mode@^6.24.1: babel-runtime "^6.22.0" babel-types "^6.24.1" +babel-polyfill@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" + dependencies: + babel-runtime "^6.26.0" + core-js "^2.5.0" + regenerator-runtime "^0.10.5" + babel-preset-env@^1.2.2: version "1.6.0" resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.0.tgz#2de1c782a780a0a5d605d199c957596da43c44e4" @@ -1680,9 +1828,11 @@ chownr@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" -chrome-trace-event@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-0.1.1.tgz#651f4d115902160b0b33aca136574b17d1519c98" +chrome-trace-event@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz#45a91bd2c20c9411f0963b5aaeb9a1b95e09cc48" + dependencies: + tslib "^1.9.0" ci-info@^1.0.0: version "1.0.0" @@ -3532,6 +3682,10 @@ iconv-lite@^0.4.17, iconv-lite@~0.4.13: version "0.4.18" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2" +ieee754@^1.1.11: + version "1.1.12" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b" + ieee754@^1.1.4: version "1.1.8" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" @@ -4346,6 +4500,10 @@ jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" +json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + json-schema-traverse@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" @@ -4443,6 +4601,10 @@ lcid@^1.0.0: dependencies: invert-kv "^1.0.0" +leb@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/leb/-/leb-0.3.0.tgz#32bee9fad168328d6aea8522d833f4180eed1da3" + left-pad@^1.1.3, left-pad@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.2.0.tgz#d30a73c6b8201d8f7d8e7956ba9616087a68e0ee" @@ -4697,6 +4859,10 @@ log-update@^1.0.2: ansi-escapes "^1.0.0" cli-cursor "^1.0.2" +long@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/long/-/long-3.2.0.tgz#d821b7138ca1cb581c172990ef14db200b5c474b" + longest@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" @@ -4730,6 +4896,10 @@ makeerror@1.0.x: dependencies: tmpl "1.0.x" +mamacro@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" + map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -6066,7 +6236,7 @@ regenerate@^1.2.1: version "1.3.2" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260" -regenerator-runtime@^0.10.0: +regenerator-runtime@^0.10.0, regenerator-runtime@^0.10.5: version "0.10.5" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" @@ -7063,6 +7233,10 @@ tryit@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" +tslib@^1.9.0: + version "1.9.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.2.tgz#8be0cc9a1f6dc7727c38deb16c2ebd1a2892988e" + tsscmp@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.5.tgz#7dc4a33af71581ab4337da91d85ca5427ebd9a97" @@ -7346,17 +7520,23 @@ webpack-sources@^1.1.0: source-list-map "^2.0.0" source-map "~0.6.1" -webpack@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.6.0.tgz#363eafa733710eb0ed28c512b2b9b9f5fb01e69b" +webpack@^4.12.0: + version "4.12.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.12.0.tgz#14758e035ae69747f68dd0edf3c5a572a82bdee9" dependencies: - acorn "^5.0.0" + "@webassemblyjs/ast" "1.5.12" + "@webassemblyjs/helper-module-context" "1.5.12" + "@webassemblyjs/wasm-edit" "1.5.12" + "@webassemblyjs/wasm-opt" "1.5.12" + "@webassemblyjs/wasm-parser" "1.5.12" + acorn "^5.6.2" acorn-dynamic-import "^3.0.0" ajv "^6.1.0" ajv-keywords "^3.1.0" - chrome-trace-event "^0.1.1" + chrome-trace-event "^1.0.0" enhanced-resolve "^4.0.0" eslint-scope "^3.7.1" + json-parse-better-errors "^1.0.2" loader-runner "^2.3.0" loader-utils "^1.1.0" memory-fs "~0.4.1"