13

是否可以在 gruntfile 或命令提示符中指定特定的浏览器(除了操作系统的默认浏览器)?例如“grunt server firefox”等。我的默认浏览器是 Chrome,但我想在多个浏览器中测试/开发我的网站。我在 Yeoman 中使用 GruntJS。

布莱恩

4

4 回答 4

11

快速回答

Gruntfile.js您可以添加一个app参数:

open: {
  server: {
    url: 'http://localhost:<%= connect.options.port %>',
    app: 'firefox'
  }
},

拉取请求:https ://github.com/jsoverson/grunt-open/pull/7

提交:https ://github.com/GabLeRoux/grunt-open/commit/6f2c7069767e58160ec96aaaa8fa20ed210ba183


命令行参数

可以在app字符串中传递命令行参数,比如app: "chromium-browser --incognito"-@bk11425

于 2013-09-19T00:38:49.090 回答
2

From the documentation of grunt connect: https://github.com/gruntjs/grunt-contrib-connect

You can use:

    open: {
        target: 'http://localhost:8000', // target url to open
        appName: 'open', // name of the app that opens, ie: open, start, xdg-open
        callback: function() {} // called when the app has opened
    }

i.e. appName: 'Google Chrome'

于 2014-04-03T10:45:25.550 回答
2

虽然这里的答案帮助解决了我的问题,但作为一个不太熟悉 grunt 的人,我很难弄清楚我应该我的 Gruntfile.js 中将“open:”节放在哪里。我花了大约三三遍才找到正确的位置(例如,我直接在“grunt.initConfig”和“connect: options:”下尝试,但没有效果)

我正在使用由 标准 angular yeoman generator生成的 Gruntfile.js 。

我将其发布在此文件中的位置,只是为了为处于类似困境中的任何人提供更多“背景”。

以下是 Gruntfile.js 的相关片段:

// ...
The actual grunt server settings
connect: {
  options: {
    port: 9000,
    // Change this to '0.0.0.0' to access the server from outside.
    hostname: 'localhost',
    livereload: 35729
  },
  livereload: {
    options: {
      //open: true, <- original line, comment out
      // add this
      open: {
        //target: 'http://localhost:9000', <- this works too
        target: 'http://localhost:<%= connect.options.port %>',
        appName: 'firefox'
      },
      // end add
      middleware: function (connect) {
        return [
          connect.static('.tmp'),
          connect().use(
            '/bower_components',
            connect.static('./bower_components')
          ),
          connect().use(
            '/app/styles',
            connect.static('./app/styles')
          ),
          connect.static(appConfig.app)
        ];
      }
    }
  },
  test: {
//...
于 2015-07-23T04:34:55.070 回答
1

grunt server 任务几乎与浏览器无关,它只是启动一个静态服务器供您连接和预览您的应用程序。理论上你可以使用任何你想连接的浏览器http://localhost:8080/

根据张贴者的评论澄清:

grunt-open是与 grunt-server 不同的任务:https ://npmjs.org/package/grunt-open 。grunt-open使用node-open默认open为 darwin 或startwin32 的默认任务:https ://github.com/jjrdn/node-open#how-it-works

因此,回答一下,您指定用于打开.html文件的任何应用程序(或您正在打开的任何应用程序)都将使用此任务打开。

于 2013-07-03T03:34:03.813 回答