@guanzhu.me/pw-cli 0.0.20 → 0.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/browser-manager.js +19 -7
package/package.json
CHANGED
package/src/browser-manager.js
CHANGED
|
@@ -11,22 +11,34 @@ const { readState, writeState, clearState, getProfileDir } = require('./state');
|
|
|
11
11
|
const { probeCDP, findFreePort, sleep, fetchActivePageUrl } = require('./utils');
|
|
12
12
|
|
|
13
13
|
function loadPlaywrightUtilsBundle() {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
// playwright-core's package.json "exports" blocks deep subpath requires, so
|
|
15
|
+
// we locate the package root via require.resolve on package.json, then load
|
|
16
|
+
// the internal module by absolute path.
|
|
17
|
+
const searchPaths = [
|
|
18
|
+
path.join(__dirname, '..'), // local dev
|
|
19
|
+
path.join(__dirname, '..', 'node_modules', '@playwright', 'cli'), // nested under pw-cli
|
|
17
20
|
];
|
|
18
21
|
|
|
19
|
-
|
|
22
|
+
// Also search from the global npm root where @playwright/cli might live
|
|
23
|
+
try {
|
|
24
|
+
const globalRoot = execSync('npm root -g', { encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] }).trim();
|
|
25
|
+
searchPaths.push(path.join(globalRoot, '@playwright', 'cli'));
|
|
26
|
+
searchPaths.push(globalRoot);
|
|
27
|
+
} catch {}
|
|
28
|
+
|
|
29
|
+
for (const searchPath of searchPaths) {
|
|
20
30
|
try {
|
|
21
|
-
|
|
31
|
+
const pkgJson = require.resolve('playwright-core/package.json', { paths: [searchPath] });
|
|
32
|
+
const utilsBundle = path.join(path.dirname(pkgJson), 'lib', 'utilsBundleImpl');
|
|
33
|
+
return require(utilsBundle);
|
|
22
34
|
} catch (error) {
|
|
23
|
-
if (error.code !== 'MODULE_NOT_FOUND') {
|
|
35
|
+
if (error.code !== 'MODULE_NOT_FOUND' && error.code !== 'ERR_PACKAGE_PATH_NOT_EXPORTED') {
|
|
24
36
|
throw error;
|
|
25
37
|
}
|
|
26
38
|
}
|
|
27
39
|
}
|
|
28
40
|
|
|
29
|
-
throw new Error('Unable to load playwright-core utilsBundleImpl
|
|
41
|
+
throw new Error('Unable to load playwright-core utilsBundleImpl. Reinstall @playwright/cli or playwright.');
|
|
30
42
|
}
|
|
31
43
|
|
|
32
44
|
const { ws, wsServer } = loadPlaywrightUtilsBundle();
|