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)
和:
"start": "BROWSER='google-chrome-stable' react-scripts start"
Run Code Online (Sandbox Code Playgroud)"start": "BROWSER='chrome' react-scripts start"
Run Code Online (Sandbox Code Playgroud)"start": "BROWSER='google chrome' react-scripts start"
Run Code Online (Sandbox Code Playgroud)Abb*_*bbe 18
这可以通过BROWSER
环境变量实现.
您也可以直接在终端中执行此操作:
BROWSER=chrome npm start
高级配置文档中对此进行了描述:
默认情况下,Create React App将打开默认系统浏览器,支持macOS上的Chrome.指定浏览器以覆盖此行为,或将其设置为none以完全禁用它.如果需要自定义浏览器的启动方式,则可以指定节点脚本.传递给npm start的任何参数也将传递给此脚本,并且您的应用程序所在的URL将是最后一个参数.您的脚本的文件名必须具有.js扩展名.
另请注意,浏览器名称在不同平台上有所不同:
应用名称取决于平台.不要在可重用模块中硬编码.例如,Chrome是MacOS上的谷歌浏览器,Linux上的谷歌浏览器和Windows上的Chrome.
Vla*_*lad 18
.env
在 NodeJS 应用程序的根目录中使用文件的方法。
BROWSER="firefox developer edition"
Run Code Online (Sandbox Code Playgroud)
小智 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 包来正确处理它。
小智 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)
那应该有效!
我不喜欢重复创建新的.env文件或每次都在npm start前面加上附加命令。您可以在 shell 配置文件中指定您选择的浏览器,而不是不指定。在终端中输入以下命令:
echo export BROWSER=none >> ~/.bashrc
source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
这时候你就可以奔跑npm start
并且快乐了。