mirror of
https://github.com/zhigang1992/create-react-app.git
synced 2026-03-30 17:04:14 +08:00
Use a 'BROWSER' environment variable with npm start to specify which browser to open. if the value of 'BROWSER' is not valid executable file, don't open any browser.
40 lines
1.0 KiB
JavaScript
40 lines
1.0 KiB
JavaScript
/**
|
|
* Copyright (c) 2015-present, Facebook, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under the BSD-style license found in the
|
|
* LICENSE file in the root directory of this source tree. An additional grant
|
|
* of patent rights can be found in the PATENTS file in the same directory.
|
|
*/
|
|
|
|
var execSync = require('child_process').execSync;
|
|
var opn = require('opn');
|
|
|
|
function openBrowser(url) {
|
|
if (process.platform === 'darwin') {
|
|
try {
|
|
// Try our best to reuse existing tab
|
|
// on OS X Google Chrome with AppleScript
|
|
execSync('ps cax | grep "Google Chrome"');
|
|
execSync(
|
|
'osascript openChrome.applescript ' + url,
|
|
{cwd: __dirname, stdio: 'ignore'}
|
|
);
|
|
return true;
|
|
} catch (err) {
|
|
// Ignore errors.
|
|
}
|
|
}
|
|
// Fallback to opn
|
|
// (It will always open new tab)
|
|
try {
|
|
var option = {app: process.env.BROWSER};
|
|
opn(url, option).catch(() => {}); // Prevent `unhandledRejection` error.
|
|
return true;
|
|
} catch (err) {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
module.exports = openBrowser;
|