Node Package 'spawnd'


背景

  • 一个很朴素的e2e需求:启动服务器,进行e2e测试,关闭服务器
  • 尝试过很多方法,还是从playwright的官方配置中找到了灵感

具体

  1. playwright是通过spawnd来做服务器相关的进程管理的
  2. Spawn a process inter-dependent with parent process.
  3. 我差点自己手动实现了一把 child_process 这是个深坑,还好找到了现成的轮子。
  4. 轮子的用法
    serverOptions: {
      command: 'npm run start',
      port: 3000,
    },
    
  5. 改良的用法 (为了复用build产物,节约cpu)
      serverOptions: {
        command: `http-server build -P https://example.com -p 3000`,
    },
  6. 终极改良(手动实现一个简单的带proxy的node server)
      serverOptions: {
        command: `node server.js`,
    },

小结

  • 我想一条路在前端走到黑的啊,这个不是我该看的啊喂。

文章作者: せいい
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 せいい !
  目录