Nodejs 开发并发布一个健壮的 npm 包:命令行翻译工具

发布于 1周前 作者 nodeper 来自 nodejs/Nestjs

Nodejs 开发并发布一个健壮的 npm 包:命令行翻译工具

开发并发布一个健壮的 npm 包:https://mp.weixin.qq.com/s/RE0EWyAHep5fKc_6XRJ7bw

Github: https://github.com/liuxing/translator-cli

Npm: https://www.npmjs.com/package/translator-cli

  • 编码风格:editorconfig
  • 代码风格:JavaScript Standard Style
  • 测试:jest
  • CI: Travis CI

主要使用了 commander superagent xml2js chalk

主要功能:

  • 支持 iciba、有道翻译
  • 快速切换翻译源

使用方法

$ npm install -g translator-cli
$ translator

Usage: translator [options] [command]

Options:

-V, --version  output the version number
-h, --help     output usage information

Commands:

query <words>  Query words
ls             List all the source
use            Change source to source

Examples

$ translator query test # fanyi query test 
test  [ test ]    ~ fanyi.youdao.com

- n. 试验;检验
- vt. 试验;测试
- vi. 试验;测试
- n. (Test)人名;(英)特斯特

1. Test
   测试,测验,检验
2. Test Drive
   Test Drive,Test Drive,无限狂飙
3. Test Engineer
   测试员,测试工程师,软件测试工程师


14 回复

<a href=“https://imgchr.com/i/Cfh4Q1”><img src=“https://s1.ax1x.com/2018/05/26/Cfh4Q1.md.jpg” alt=“Cfh4Q1.jpg” border=“0” /></a>


有没有考虑过精简一下命令长度,目前用的直接 $ yd 词汇

对啊,命令有点长啊

楼上们可以试试用 alias 呀

哈哈哈 写了的,还可以用fanyi fy 来使用

之后改为直接命令加词汇查询的,谢谢建议

还行

精简命令 已支持fy &lt;words&gt;fy q &lt;words&gt;

ok 上班时试试

没看明白测试用例在测什么。。。

为了测试而测试 哈哈哈

哈哈,前不久用 Go 也搞了一个。

https://github.com/xwjdsh/fy

在 Node.js 中开发并发布一个健壮的 npm 包,特别是命令行翻译工具,可以遵循以下步骤:

  1. 初始化项目

    mkdir translate-cli
    cd translate-cli
    npm init -y
    
  2. 安装依赖: 你可能需要一些翻译服务的 API 客户端库,例如 Google Translate API。

    npm install [@google-cloud](/user/google-cloud)/translate
    npm install yargs # 用于处理命令行参数
    
  3. 编写代码: 创建一个 index.js 文件,并编写你的命令行工具逻辑。

    const translate = require('[@google-cloud](/user/google-cloud)/translate').v2;
    const yargs = require('yargs/yargs');
    const { hideBin } = require('yargs/helpers');
    
    const argv = yargs(hideBin(process.argv))
      .command('translate <text> [toLanguage]', 'Translate text to a specified language', (yargs) => {
        yargs.positional('text', {
          describe: 'The text to translate',
          type: 'string'
        })
        .option('fromLanguage', {
          alias: 'f',
          type: 'string',
          description: 'The source language'
        })
        .demandCommand(1, 'You need at least one command')
      })
      .argv;
    
    // 调用翻译服务逻辑...
    
  4. 添加 bin 字段到 package.json

    "bin": {
      "translate-cli": "./index.js"
    }
    
  5. 发布 npm 包

    npm login
    npm publish
    

这只是一个基本的框架,你需要根据具体需求完善翻译逻辑和错误处理。

回到顶部