【问题标题】:How to print command line arguments out with npm or yargs in a react component?如何在反应组件中使用 npm 或 yargs 打印命令行参数?
【发布时间】:2018-03-17 15:44:59
【问题描述】:

我正在尝试打印 React 组件中的命令行参数。

NPM 文档说我可以使用..

console.log(process.argv);

但是,这不会打印任何内容。

Array(0)

上面是它在控制台中打印的内容。我用 ... 调用我的程序

npm start

其中 start 是 npm electron 。好的

yargs 可以在 react 组件中打印命令行参数吗?我应该尝试使用 yargs 吗?我找不到任何关于如何通过反应来做到这一点的文档。我知道电子只能在 main.js 中打印出来,远程进程在反应组件中不起作用。

【问题讨论】:

    标签: reactjs npm components command-line-arguments yargs


    【解决方案1】:

    React 是客户端,对吧?虽然console.log() 是服务器端......所以console.log() 不会在你的反应内容中加入任何东西(除非你重写它)。

    Electron确实让您可以访问您的节点执行上下文(因此您可以说 var path = require("path") 并可以访问路径活动)。

    所以您可能可以访问您的 yargs 输出作为页面级变量。 否则,你可以构建一个你可以 require() 的模块。

    另一种方法是让 react 发出请求以获取 yargs 输出并像对待任何其他数据一样对待它。

    我确信还有其他解决方案。

    我有一些示例代码做类似的事情,但在这里使用 Angular:https://github.com/Earl-Brown/N-Dash

    【讨论】:

    • 我尝试了 require() 行,但我不断收到找不到路径或模块的错误。我什至尝试在 webpack 中添加一个预设的“电子”,这样我就可以将电子导入到客户端组件中,但这并不奏效。我将看一下这个例子,看看我是否能找出任何可行的方法。谢谢
    • 无法真正跟踪程序执行类似操作的位置。你会认为这是可能的,但我这几天一直在努力寻找解决方案,但还没有遇到任何人能够使用 react 组件获取命令行参数。
    【解决方案2】:

    首先你需要运行命令行

    npm start -- test

    测试是您的建议。然后你可以在你的脚本中打印它

    // print process.argv
    process.argv.forEach(function (val, index, array) {
      console.log(index + ': ' + val);
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-06
      • 2021-03-12
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 2021-08-24
      • 1970-01-01
      • 2020-05-05
      相关资源
      最近更新 更多