npm 的 execa 包的使用实例


问题描述

   想用npm run build的项目里导入了“child_process”这个包,提示我没有这个包,然后我用npm install child_process命令安装这个包,但是仍然出问题!
在这里插入图片描述

发现问题

  在node中可以用“child_process”,而且网上资料比较多,但是这个库npm已经不提供了,即使用npm install 下来也是一个空包,所以在使用时会出错。在查阅了n篇文章之后发现所有又找到了一个库execa,这个库是child_process 的加强版(具体参见官方文档

execa的使用

1、应用实例

  问题主要是官方文档都默认我们是编程高手,随便看看官方文档就会用了,实际上我就第一次看不会用呀(该不会就我不会吧,呜呜呜)
  这个网上资料好像不是很多,即使有也很多写得不是很清楚,没办法,只能自己结合n篇文章+官方文档摸索使用,最后终于知道怎么用了,分享给大家,大家直接参考实例去用,使用例程如下:

const execa = require('execa');

const result = execa('python translatebaidu.py', ['apple'],(error, stdout, stderr) => {
    
    
    if (error) {
    
    
        throw error;
    }
    console.log(stdout);
});

result.stdout.on('data', function (data) {
    
    
    console.log(data)
});

  这时数据输出来了,但是编码方式不对,修改一下:

const execa = require('execa');
const iconv = require("iconv-lite");

const result = execa('python translatebaidu.py', ['apple'],(error, stdout, stderr) => {
    
    
    if (error) {
    
    
        throw error;
    }
    console.log(stdout);
});

result.stdout.on('data', function (data) {
    
    
    console.log(iconv.decode(Buffer.from(data, 'binary'), 'cp936'))
});

2、过程中遇到的问题:(读者需要注意的地方)

(1)execa第一个参数是一个字符串,就是你在cmd中运行脚本的时候敲的命令;第二个参数是一个参数列表,放着你要给这个脚本传入的参数,注意是一个列表,没有列表就不返回;第三个参数一个函数,但是好像没有执行,不是很懂,有大佬懂的评论区告诉我哦~
(2)真正的结果输出是在result.stdout.on部分

最后

  我属于那种学得很杂,我会发各种领域的文章出来,就是最近学到啥就发啥,有兴趣学习各种不同领域知识的各位读者大大可以关注一下下我,说不定能找到你感兴趣的东西哦~

猜你喜欢

转载自blog.csdn.net/weixin_45386875/article/details/116279271