如何使用特定浏览器"npm start"?

Osa*_*rem 17 javascript windows node.js npm

npm开始

在默认浏览器上启动react服务器,这对我来说就是Firefox.我喜欢Firefox浏览,但更喜欢Chrome开发工具的Web开发.有没有办法强制"npm start"使用Chrome启动服务器,而不将我的默认浏览器更改为chrome?我在Windows上使用Bash.

编辑:我使用"create-react-app"来创建我的服务器,这会为"npm start"的"packages.json"文件添加一个脚本.该脚本使用默认浏览器启动localhost服务器.如何修改"create-react-app"添加的脚本,使其以不同的浏览器启动?

n0n*_*oob 32

正如您所提到的,您正在create-react-app用于创建 react 应用程序,并且您希望 chrome 在点击时打开npm start。按以下方式在您的项目中设置BROWSER变量package.json

代替:

"start": "react-scripts start"
Run Code Online (Sandbox Code Playgroud)

和:

  • 我认为 Windows 语法是错误的。我得到“浏览器”不被识别为内部或外部命令、可操作程序或批处理文件。 (4认同)
  • @RonInbar可能您需要在Windows中指定“chrome”可执行文件的完整路径。 (3认同)
  • 在 React 18.0.0 中不起作用。正在 17.0.1 中工作。实际上需要 `"react": "^17.0.1", "react-scripts": "4.0.1"` 18.0.0 有修复吗? (3认同)

Abb*_*bbe 18

这可以通过BROWSER环境变量实现.

您也可以直接在终端中执行此操作: BROWSER=chrome npm start

高级配置文档中对此进行了描述:

默认情况下,Create React App将打开默认系统浏览器,支持macOS上的Chrome.指定浏览器以覆盖此行为,或将其设置为none以完全禁用它.如果需要自定义浏览器的启动方式,则可以指定节点脚本.传递给npm start的任何参数也将传递给此脚本,并且您的应用程序所在的URL将是最后一个参数.您的脚本的文件名必须具有.js扩展名.

另请注意,浏览器名称在不同平台上有所不同:

应用名称取决于平台.不要在可重用模块中硬编码.例如,Chrome是MacOS上的谷歌浏览器,Linux上的谷歌浏览器和Windows上的Chrome.

  • 因为我浪费了很多时间,所以对于OS X:BROWSER =“ google chrome” (5认同)
  • 高级配置文档的链接已更改。现在是 https://facebook.github.io/create-react-app/docs/advanced-configuration (2认同)

Vla*_*lad 18

.env在 NodeJS 应用程序的根目录中使用文件的方法。

BROWSER="firefox developer edition"
Run Code Online (Sandbox Code Playgroud)

  • 这实际上对我不起作用(目前在 Windows 机器上),但使用 `BROWSER="firefox"` 仍然可以打开 Firefox Developer Edition,所以我想我很好 (4认同)
  • 这是一个相当个人的偏好,所以你可能想将它添加到 `.env.local` (它被 git 忽略) (2认同)

小智 16

使用上述技术,您可能会遇到错误 'BROWSER' is not recognized as an internal or external command, operable program or batch file.

为了克服这个问题,请在克隆的存储库中进行跨环境的 npm 安装: npm install --save cross-env

尝试在package.json文件中使用此命令

"start": "cross-env BROWSER=chrome react-scripts start"

BROWSER 是一个环境变量,你可以使用 cross-env 包来正确处理它。

  • 只是更正:如果将“cross-env”安装为开发依赖项,那就更好了。因此更好的命令是安装软件包: npm install --save-dev cross-env (5认同)

小智 7

只需将env-cmd 包添加为全局即可

然后创建一个 .env 文件并写入一个具有特定浏览器路径的变量,然后在启动脚本中添加 env-cmd

在航站楼

npm install -g env-cmd
Run Code Online (Sandbox Code Playgroud)

在 .env 文件中

BROWSER= "your browser path"
Run Code Online (Sandbox Code Playgroud)

像=>浏览器=“C:\ ProgramData \ Microsoft \ Windows \开始菜单\程序\ Microsoft Edge”

在 package.json 中添加env-cmd

"scripts": {
   "start": "env-cmd react-scripts start",
   "build": "react-scripts build",
   "test": "react-scripts test",
   "eject": "react-scripts eject"
}
Run Code Online (Sandbox Code Playgroud)

那应该有效!


daG*_*aGo 6

我不喜欢重复创建新的.env文件或每次都在npm start前面加上附加命令。您可以在 shell 配置文件中指定您选择的浏览器,而不是不指定。在终端中输入以下命令:

echo export BROWSER=none >> ~/.bashrc
source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

这时候你就可以奔跑npm start并且快乐了。


小智 5

在 Windows cmd 中,为所需的浏览器设置环境变量:

set BROWSER=chrome

npm start然后像平常一样运行