Nodejs 开发并发布一个健壮的 npm 包:命令行翻译工具
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
测试员,测试工程师,软件测试工程师
支持!
有没有考虑过精简一下命令长度,目前用的直接 $ yd 词汇
对啊,命令有点长啊
楼上们可以试试用 alias 呀
哈哈哈 写了的,还可以用fanyi
fy
来使用
之后改为直接命令加词汇查询的,谢谢建议
还行
精简命令 已支持fy <words>
、fy q <words>
ok 上班时试试
没看明白测试用例在测什么。。。
为了测试而测试 哈哈哈
哈哈,前不久用 Go 也搞了一个。
https://github.com/xwjdsh/fy
在 Node.js 中开发并发布一个健壮的 npm 包,特别是命令行翻译工具,可以遵循以下步骤:
-
初始化项目:
mkdir translate-cli cd translate-cli npm init -y
-
安装依赖: 你可能需要一些翻译服务的 API 客户端库,例如 Google Translate API。
npm install [@google-cloud](/user/google-cloud)/translate npm install yargs # 用于处理命令行参数
-
编写代码: 创建一个
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; // 调用翻译服务逻辑...
-
添加
bin
字段到package.json
:"bin": { "translate-cli": "./index.js" }
-
发布 npm 包:
npm login npm publish
这只是一个基本的框架,你需要根据具体需求完善翻译逻辑和错误处理。