【问题标题】:nodejs open chrome in window with argumentsnodejs在带有参数的窗口中打开chrome
【发布时间】:2015-10-25 15:12:42
【问题描述】:

尝试为 gulp 编写我自己的插件。所以我写了一个 gulp 任务,尝试在 windows 中打开 chrome 浏览器(我稍后会为 mac/linux 工作)。

它似乎有效,只是它没有传递我的论点:

/* * 打开 */ gulp.task('open', function (done) { var uri = 'http://localhost:' + CONFIG.PORT, 配置端口 = 8080, 参数 = [ 乌里, '--没有第一次运行', '--no-default-browser-check', '--禁用翻译', '--disable-default-apps', '--disable-popup-blocking', '--disable-zero-browsers-open-for-tests', '--禁用网络安全', ' - 新窗户', '--user-data-dir="C:/temp-chrome-eng"' ] cp.spawn('C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe', args); })

我如何让它接受我传入的参数?是否提供了错误的论点?

【问题讨论】:

    标签: node.js


    【解决方案1】:

    我建议使用非常流行的 npm 模块 opener,它可以解决您的参数问题和跨平台支持问题。

    您无需像现在这样查找浏览器可执行文件,只需编写:

    var opener = require('opener')
    opener('http://google.com')
    

    但是,如果您想使用当前方法,请尝试通过命名您的进程来捕获输出,然后监听 stderr 和 stdout:

    var chrome = cp.spawn ...
    
    chrome.stdout.on('data', function (data) {                                      
        console.log(data.toString())
    })
    
    chrome.stderr.on('data', function (data) {                                      
        console.error(data.toString())
    })
    

    如果我用 chromium 替换你的 chrome 路径,它在 linux 上对我有用。

    【讨论】:

    • 试图按照说明推出自己的产品。 :(
    • 我在linux上试过你的方法,效果很好。我在答案中添加了一些调试步骤
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-21
    • 2020-10-27
    • 2013-04-30
    • 1970-01-01
    相关资源
    最近更新 更多