我正在使用create-react-app工具来开发React应用程序。问题是当我使用"npm start"命令运行应用程序时,它将在Firefox浏览器中打开,我希望默认情况下它在Chrome浏览器中打开。
我发现许多答案提供了相同的解决方案,即在package.json文件中的脚本部分中修改"开始">,但我使用不同的代码一遍又一遍地尝试,但没有奏效。我不知道为什么我读到的所有答案都没有解决我的问题。我在Windows 7中工作。
这是我的包.json代码:
{
"name": "jsx",
"version": "0.1.0",
"private": true,
"dependencies": {
"react": "^16.8.6",
"react-dom": "^16.8.6",
"react-scripts": "3.0.1"
},
"scripts": {
"start": "cross-env PORT=8080 BROWSER='Chrome' react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}
如果我在package.json的脚本部分中更新"开始",如下所示:
"start": "BROWSER='Chrome' react-scripts start"
它不起作用,我收到此错误:
"浏览器"不被识别为内部或外部命令
这是日志文件:
0 info it worked if it ends with ok
1 verbose cli [ 'C:\Program Files (x86)\nodejs\node.exe',
1 verbose cli 'C:\Program Files
(x86)\nodejs\node_modules\npm\bin\npm-cli.js',
1 verbose cli 'start' ]
2 info using npm@6.7.0
3 info using node@v11.11.0
4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info lifecycle jsx@0.1.0~prestart: jsx@0.1.0
6 info lifecycle jsx@0.1.0~start: jsx@0.1.0
7 verbose lifecycle jsx@0.1.0~start: unsafe-perm in lifecycle true
8 verbose lifecycle jsx@0.1.0~start: PATH: C:Program Files (x86)nodejsnode_modulesnpmnode_modulesnpm-lifecyclenode-gyp-bin;C:UsersKAreactjsxnode_modules.bin;C:Python27;C:Python27Scripts;C:ProgramDataOracleJavajavapath;C:Program Files (x86)Common FilesOracleJavajavapath;C:Python36Scripts;C:Python36;C:Program Files (x86)NVIDIA CorporationPhysXCommon;C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;C:Program FilesIntelWiFibin;C:Program FilesCommon FilesIntelWirelessCommon;C:Program Files (x86)QuickTimeQTSystem;C:WindowsSystem32Windows System Resource Managerbin;C:Windowsidmucommon;C:Program Files (x86)Microsoft SQL Server100ToolsBinn;C:Program FilesMicrosoft SQL Server100ToolsBinn;C:Program FilesMicrosoft SQL Server100DTSBinn;C:Program Files (x86)Windows Kits8.1Windows Performance Toolkit;C:Program FilesMicrosoft SQL Server110ToolsBinn;C:Program Files (x86)Microsoft SDKsTypeScript1.0;C:Program FilesMicrosoft SQL Server120ToolsBinn;C:Program FilesJavajdk1.8.0bin;C:ProgramDataAnaconda2;C:ProgramDataAnaconda2Scripts;C:ProgramDataAnaconda2Librarybin;C:Program Filesdotnet;C:Program FilesMicrosoft SQL Server130ToolsBinn;C:Program Files (x86)Pandoc;C:Program FilesGitcmd;C:Program Files (x86)Microsoft SQL Server100ToolsBinnVSShellCommon7IDE;C:Program Files (x86)Microsoft SQL Server100DTSBinn;C:Program Files (x86)Microsoft Visual Studio 9.0Common7IDEPrivateAssemblies;C:UsersKA.dnxbin;C:Program FilesMicrosoft DNXDnvm;C:Program Files (x86)nodejs;C:ProgramDatachocolateybin;;C:Program Files (x86)LINQPad5;C:Ruby22bin;C:Python27;C:Python27Scripts;C:UsersKAAppDataLocalatombin;C:Program Filesherokubin;C:Python27Scriptspip.exe;C:UsersKAAppDataRoamingnpm;C:UsersKAAppDataLocalProgramsMicrosoft VS Codebin;C:UsersKAAppDataRoamingnpm;C:UsersKA.dotnettools
9 verbose lifecycle jsx@0.1.0~start: CWD: C:UsersKAreactjsx
10 silly lifecycle jsx@0.1.0~start: Args: [ '/d /s /c', "BROWSER='Chrome' react-scripts start" ]
11 silly lifecycle jsx@0.1.0~start: Returned: code: 1 signal: null
12 info lifecycle jsx@0.1.0~start: Failed to exec start script
13 verbose stack Error: jsx@0.1.0 start: `BROWSER='Chrome' react-scripts start`
13 verbose stack Exit status 1
13 verbose stack at EventEmitter.<anonymous> (C:Program Files (x86)nodejsnode_modulesnpmnode_modulesnpm-lifecycleindex.js:301:16)
13 verbose stack at EventEmitter.emit (events.js:197:13)
13 verbose stack at ChildProcess.<anonymous> (C:Program Files (x86)nodejsnode_modulesnpmnode_modulesnpm-lifecyclelibspawn.js:55:14)
13 verbose stack at ChildProcess.emit (events.js:197:13)
13 verbose stack at maybeClose (internal/child_process.js:984:16)
13 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:265:5)
14 verbose pkgid jsx@0.1.0
15 verbose cwd C:UsersKAreactjsx
16 verbose Windows_NT 6.1.7601
17 verbose argv "C:\Program Files (x86)\nodejs\node.exe" "C:\Program Files (x86)\nodejs\node_modules\npm\bin\npm-cli.js" "start"
18 verbose node v11.11.0
19 verbose npm v6.7.0
20 error code ELIFECYCLE
21 error errno 1
22 error jsx@0.1.0 start: `BROWSER='Chrome' react-scripts start`
22 error Exit status 1
23 error Failed at the jsx@0.1.0 start script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 1, true ]
在项目根目录中创建一个.env.development
文件,并包含以下行:
BROWSER=chrome
<</div>
div class="one_answers"> 在窗口中,设置 env 变量:
set BROWSER=chrome
然后像往常一样做npm start
如果你在 wndows 它的
BROWSER=chrome npm start
Linux 是
BROWSER=google-chrome npm start
马科斯是
BROWSER=google chrome npm start
在这里,您在一行中使用两个命令,其中一个是设置环境变量,另一个是启动节点.js。命令行中的命令应如下所示:
set BROWSER=chrome
npm start
或者,您可以在运行节点之前在系统环境中设置浏览器环境变量.js
将默认浏览器更改为 Chrome 或使用:
"start": "cross-env BROWSER='Google Chrome' react-scripts start",
转到您的 Windows 设置并搜索默认浏览器并根据您的选择进行设置....我面临着同样的问题,并通过这样做解决了它......
在 Mac 上,启动脚本应包含引号google chrome
:
"start": "BROWSER='google chrome' react-scripts start"
现在npm start
将在Chrome中打开它。
如果您希望灵活地使用不同的浏览器,请将以下内容添加到 package.json 文件中:
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"chrome": "BROWSER='google chrome' react-scripts start",
"safari": "BROWSER=safari react-scripts start"
}
这些脚本适用于 npm run chrome
和 npm run safari
只需运行 npm start如果您想在Chrome或任何其他浏览器中打开它,它会打开普通浏览器只需复制 URL 并将其粘贴到所需的浏览器中
本地主机:3000
就我而言,这是网址
你可以直接删除"last 1 firefox version", "last 1 safari version"
,只让"last 1 chrome version",
留在你的包中.json