Skip to content

Commit 5395cec

Browse files
alan-agius4filipesilva
authored andcommittedMay 15, 2020
refactor: remove deprecate protractor elementExplorer
Protractor `elementExplorer` debugger and element explorer cannot be used for Node.js 8+ since it relied on `_debugger` module. In protractor version 5, this resulted in the below error: ``` ** Angular Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200/ ** : Compiled successfully. [10:25:35] I/direct - Using ChromeDriver directly... [10:25:37] I/protractor - [10:25:37] I/protractor - ------- Element Explorer ------- [10:25:37] I/protractor - Starting WebDriver debugger in a child process. Element Explorer is still beta, please report issues at github.com/angular/protractor [10:25:37] I/protractor - [10:25:37] I/protractor - Type <tab> to see a list of locator strategies. [10:25:37] I/protractor - Use the `list` helper function to find elements by strategy: [10:25:37] I/protractor - e.g., list(by.binding('')) gets all bindings. [10:25:37] I/protractor - *********************************************************** * WARNING: _debugger module not available on Node.js 8 * * and higher. * * * * Use 'debugger' keyword instead: * * https://goo.gl/MvWqFh * *********************************************************** /Users/alanagius/cli-repos/demo-several/node_modules/protractor/built/debugger/debuggerCommons.js:14 throw e; ^ Error: Cannot find module '_debugger' Require stack: - /Users/alanagius/cli-repos/demo-several/node_modules/protractor/built/debugger/debuggerCommons.js - /Users/alanagius/cli-repos/demo-several/node_modules/protractor/built/debugger/clients/explorer.js at Function.Module._resolveFilename (internal/modules/cjs/loader.js:980:15) at Function.Module._load (internal/modules/cjs/loader.js:862:27) at Module.require (internal/modules/cjs/loader.js:1042:19) at require (internal/modules/cjs/helpers.js:77:18) at Object.<anonymous> (/Users/alanagius/cli-repos/demo-several/node_modules/protractor/built/debugger/debuggerCommons.js:3:18) at Module._compile (internal/modules/cjs/loader.js:1156:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1176:10) at Module.load (internal/modules/cjs/loader.js:1000:32) at Function.Module._load (internal/modules/cjs/loader.js:899:14) at Module.require (internal/modules/cjs/loader.js:1042:19) { code: 'MODULE_NOT_FOUND', requireStack: [ '/Users/alanagius/cli-repos/demo-several/node_modules/protractor/built/debugger/debuggerCommons.js', '/Users/alanagius/cli-repos/demo-several/node_modules/protractor/built/debugger/clients/explorer.js' ] } ``` but in protractor version 7, this logic was removed. BREAKING CHANGE: Protractor builder elementExplorer option has been removed. This was not compatable with the Node.Js versions that the Angular CLI supports. See: https://github.com/angular/protractor/blob/master/docs/debugging.md#enabled-control-flow for an alternative debugging methods.
1 parent 56bba34 commit 5395cec

File tree

6 files changed

+16
-33
lines changed

6 files changed

+16
-33
lines changed
 

‎packages/angular/cli/lib/config/schema.json

-5
Original file line numberDiff line numberDiff line change
@@ -1645,11 +1645,6 @@
16451645
"type": "string",
16461646
"description": "Override suite in the protractor config."
16471647
},
1648-
"elementExplorer": {
1649-
"type": "boolean",
1650-
"description": "Start Protractor's Element Explorer for debugging.",
1651-
"default": false
1652-
},
16531648
"webdriverUpdate": {
16541649
"type": "boolean",
16551650
"description": "Try to update webdriver.",

‎packages/angular_devkit/build_angular/src/protractor/index.ts

-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ interface JasmineNodeOpts {
2626

2727
function runProtractor(root: string, options: ProtractorBuilderOptions): Promise<BuilderOutput> {
2828
const additionalProtractorConfig: Partial<ProtractorBuilderOptions> & Partial<JasmineNodeOpts> = {
29-
elementExplorer: options.elementExplorer,
3029
baseUrl: options.baseUrl,
3130
specs: options.specs && options.specs.length ? options.specs : undefined,
3231
suite: options.suite,

‎packages/angular_devkit/build_angular/src/protractor/schema.json

-5
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,6 @@
3535
"type": "string",
3636
"description": "Override suite in the protractor config."
3737
},
38-
"elementExplorer": {
39-
"type": "boolean",
40-
"description": "Start Protractor's Element Explorer for debugging.",
41-
"default": false
42-
},
4338
"webdriverUpdate": {
4439
"type": "boolean",
4540
"description": "Try to update webdriver.",

‎packages/schematics/angular/migrations/migration-collection.json

+5-5
Original file line numberDiff line numberDiff line change
@@ -75,11 +75,6 @@
7575
"factory": "./update-9/schematic-options",
7676
"description": "Replace deprecated 'styleext' and 'spec' Angular schematic options."
7777
},
78-
"update-angular-config": {
79-
"version": "10.0.0-beta.3",
80-
"factory": "./update-10/update-angular-config",
81-
"description": "Remove various deprecated builders options from 'angular.json'."
82-
},
8378
"side-effects-package-json": {
8479
"version": "10.0.0-beta.3",
8580
"factory": "./update-10/side-effects-package-json",
@@ -94,6 +89,11 @@
9489
"version": "10.0.0-beta.6",
9590
"factory": "./update-10/update-dependencies",
9691
"description": "Workspace dependencies updates."
92+
},
93+
"update-angular-config": {
94+
"version": "10.0.0-beta.6",
95+
"factory": "./update-10/update-angular-config",
96+
"description": "Remove various deprecated builders options from 'angular.json'."
9797
}
9898
}
9999
}

‎packages/schematics/angular/migrations/update-10/update-angular-config.ts

+11-10
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,16 @@ export default function (): Rule {
3131
continue;
3232
}
3333

34-
let extraOptionsToRemove = {};
34+
let optionsToRemove: Record<string, undefined> = {
35+
evalSourceMap: undefined,
36+
skipAppShell: undefined,
37+
profile: undefined,
38+
elementExplorer: undefined,
39+
};
40+
3541
if (target.builder === Builders.Server) {
36-
extraOptionsToRemove = {
42+
optionsToRemove = {
43+
...optionsToRemove,
3744
vendorChunk: undefined,
3845
commonChunk: undefined,
3946
};
@@ -43,10 +50,7 @@ export default function (): Rule {
4350
if (target.options) {
4451
target.options = {
4552
...updateVendorSourceMap(target.options),
46-
evalSourceMap: undefined,
47-
skipAppShell: undefined,
48-
profile: undefined,
49-
...extraOptionsToRemove,
53+
...optionsToRemove,
5054
};
5155
}
5256

@@ -58,10 +62,7 @@ export default function (): Rule {
5862
for (const configurationName of Object.keys(target.configurations)) {
5963
target.configurations[configurationName] = {
6064
...updateVendorSourceMap(target.configurations[configurationName]),
61-
evalSourceMap: undefined,
62-
skipAppShell: undefined,
63-
profile: undefined,
64-
...extraOptionsToRemove,
65+
...optionsToRemove,
6566
};
6667
}
6768
}

‎tests/legacy-cli/e2e/tests/basic/e2e.ts

-7
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,6 @@ export default function () {
5757
},
5858
`, `allScriptsTimeout: 11000,`
5959
))
60-
// Should start up Element Explorer
61-
.then(() => execAndWaitForOutputToMatch('ng', ['e2e', 'test-project', '--element-explorer'],
62-
/Element Explorer/))
63-
.then(() => killAllProcesses(), (err: any) => {
64-
killAllProcesses();
65-
throw err;
66-
})
6760
// Should run side-by-side with `ng serve`
6861
.then(() => execAndWaitForOutputToMatch('ng', ['serve'],
6962
/: Compiled successfully./))

0 commit comments

Comments
 (0)
Please sign in to comment.