【问题标题】:BROWSER SYNC headless environment ERROR浏览器同步无头环境错误
【发布时间】:2017-11-10 00:07:48
【问题描述】:

所以我刚开始学习 Angular 2,在 git bash 上运行 npm install 命令并打开我的文本编辑器后,我试图运行 npm start 命令来启动 typescript 和 lite 服务器。一切都很顺利,直到出现此错误[1] [BS] Couldn't open browser (if you are using BrowserSync in a headless environment, you might want to set the open option to false) 并且浏览器没有打开。这是它的外观 `

$ npm start

[1] [BS] Access URLs:
[1]  --------------------------------------
[1]        Local: http://localhost:3002
[1]     External: http://172.30.31.239:3002
[1]  --------------------------------------
[1]           UI: http://localhost:3003
[1]  UI External: http://172.30.31.239:3003
[1]  --------------------------------------
[1] [BS] Serving files from: ./
[1] [BS] Watching files...
[1] [BS] Couldn't open browser (if you are using BrowserSync in a headless environment, you might want to set the open option to false)
`  

我使用的是 Windows 8 64 位操作系统,Chrome 是默认浏览器

回答了一个相关问题https://stackoverflow.com/a/42845813/8130472,并建议选择将 C:\Windows\System32 添加到系统变量中,但我不知道该怎么做。

此外,在此链接上,https://forums.bignerdranch.com/t/browser-sync-couldnt-open-browser/10936/4 的另一个建议是添加 --browser"chrome.exe"(Windows)。那也没用。

有什么建议吗?还是解决方案?

【问题讨论】:

  • 我刚刚在“系统变量”中添加了 PATH 变量作为 C:\Windows\System32 并在重新启动后工作。我仍然不知道它做了什么以及它如何帮助消除错误。所以,如果有人知道它如何通过添加路径变量来消除错误,请告诉我。

标签: angularjs node.js npm browser-sync npm-start


【解决方案1】:

因此,当我继续浏览时,我在此网页https://gist.github.com/Kenty/9096000/revisions 上找到了解决此问题的线索,这暗示了我可以从错误消息中找到打开选项的位置。我决定在我的电脑上搜索"bs.config.js",我在我的angular文件夹下的\Template\node_modules\browser-sync\lib文件夹中找到了一个名为default.config.js的文件,当我搜索该文件时,我终于找到了打开选项并将打开选项从“local”(这是默认选项)设置为 false(注意,它没有引号),当我在 git-bash 终端上再次运行 npm start 命令时,它工作了,没有更多错误了。

【讨论】:

  • 我将 Roots.io 的堆栈与 Trellis、Bedrock 和 Sage 主题 (8.x) 一起使用,我的配置文件名为 default-config.js,它位于 node_modules/browser-sync/lib / 在第 256 行附近。当我尝试搜索您所在的文件名时,我没有得到任何结果。所以希望这对其他人有帮助。感谢您发布解决方案!
  • 请注意,这只是阻止浏览器自动打开。如果您希望浏览器自动打开,则需要不同的解决方案。 (如果你只是在本地运行并且不在乎浏览器不会自动打开,那么你可以忽略“无法打开浏览器”警告。)
【解决方案2】:

添加浏览器属性,例如使用 firefox : firefox: '-browser "firefox.exe"'

browserSync.init({
    server: "./src",
    firefox: '-browser "firefox.exe"'
}

【讨论】:

    【解决方案3】:

    回答了一个相关问题https://stackoverflow.com/a/42845813/8130472,并建议选择将 C:\Windows\System32 添加到系统变量中,但我不知道该怎么做

    关于添加到系统变量,您可以转到“这台电脑”属性,然后到左侧栏“高级系统设置”,然后在底部您会看到“环境变量”。您将看到列出的路径变量双击并在路径上方复制粘贴,即 C:\Windows\System32

    重新启动后,这确实解决了我的浏览器同步问题。

    【讨论】:

      【解决方案4】:

      我试过这个命令,它对我有用:> browser-sync start --server --browser "chrome.exe" --directory --files "*"

      【讨论】:

      • 请不要只写代码答案。它是如何工作的,它有什么作用?
      【解决方案5】:

      您必须在 Visual Studio 的 Packages.congig 文件中更改一些内容

      {
      
      "port": 3000,
      
      "server": {
      
      "baseDir": "."
      
      },
      
      "browser": ["chrome"]
      
      }
      

      它在我的电脑上工作,你应该立即尝试

      【讨论】:

        【解决方案6】:

        以管理员身份运行 cmd 可能会解决问题

        【讨论】:

          【解决方案7】:

          我也遇到了同样的问题。

          打开你喜欢的浏览器,在搜索栏中明确写上刚才提到的本地访问 URL,你在命令提示符中遇到的错误,如 localhost:3002。你可能在那里有像 3000 或 3001 这样的端口号。按回车键,Browsersync 将被连接并执行 index.html。

          我希望这也适用于你!

          【讨论】:

          • 嗨 Bhavdeep,欢迎来到 SO!在回答下一个问题之前,请阅读writing a good answer。享受您的住宿:)
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-06-08
          • 2020-05-19
          • 2017-12-26
          • 2016-01-16
          • 1970-01-01
          相关资源
          最近更新 更多