代码之家  ›  专栏  ›  技术社区  ›  Andrew M.

需要帮助了解我的应用程序是如何启动的

  •  0
  • Andrew M.  · 技术社区  · 7 年前

    我有一个应用程序,可以播放tic tac toe并在命令行中连接四个。有些代码是我没有编写的样板,我很难理解它是如何工作的。

    当我跑的时候 npm start ,按预期连接四个播放,但无法播放tic tac toe。我希望用户选择玩任何一种游戏。理想情况下,我会提示用户,但有一个命令为每个游戏将是好的。

    有一个短的 server.js 如下所示的文件:

    require('babel-polyfill');
    require('babel-register');
    require('.');
    

    在我的 package.json ,我有 main: "./connect4/index.js" .

    据我所知,这是所有与启动应用程序相关的代码。我为这个模糊的问题道歉。但是这个应用程序并不复杂,所以希望它有一定的意义。

    3 回复  |  直到 7 年前
        1
  •  0
  •   lordoftheFlies    7 年前

    有两种方法可以做到这一点。第一种方法是使用npm package inquirer,它允许您在命令行中提示用户。

    另一种方法是使用内置节点 process.argv 这是一个属性,它将返回一个包含您传递的所有命令行参数的数组。请注意,使用此选项时,位置[0]将默认为计算机上节点的位置,位置[1]将默认为当前文件位置。要访问自定义参数,您必须从位置[2]等开始,这样您就可以编写运行tic tac toe或基于位置2的argv值连接4的逻辑。所以在你代码的某个地方

     if (process.argv[2] === "tick-tack-toe") {
      console.log("do tick tack toe logic");
    }else if (process.argv[2] === "connect-4") {
      console.log("do connect 4 logic");
    }
    

    希望这有帮助。您可以在此处阅读有关process.argv的更多信息 https://nodejs.org/docs/latest/api/process.html#process_process_argv

    这里有一个链接到github上的inquirer https://github.com/SBoudrias/Inquirer.js#readme

        2
  •  0
  •   Jason Cust    7 年前

    作为背景,执行时 npm start npm将尝试运行命令 node server.js 如果 scripts.start 在package.json文件中未指定。

    假设执行 node ./connect4/index.js 工作,tic-tac-toe被类似地组织为connect4,那么下面的任何一个都可以工作。

    • 只需直接使用 node ./ticTacToe/index.js (假设 ticTacToe 是目录和 index.js 是要执行的主文件)。
    • 添加一个 scripts: {ticTacToe: "node ./ticTacToe/index.js"} (或任何您想调用它的内容)到package.json,然后执行 npm run ticTacToe .
        3
  •  0
  •   Andrew M.    7 年前

    谢谢你的反馈。我添加了一个顶级 index.js 文件,将每个游戏的相关代码导入到该文件中,并使用查询器提示用户选择游戏。

    为添加脚本 ticTacToe c4 对我 package.json 因为我认为 server.js 需要文件来分析导入/导出语法。

    回购是 here ,如果好奇的话。

    推荐文章