使用NPM和Nodejs编写编译工具
2014-08-26 10:05
351 查看
托NPM和Nodejs的福,现在用javascript就可以快速编写命令行工具而不用浪费时间迷乱在c语法中.
用javascript就可以写出类似的工具,NPM就是一个例子.
会把文件合并、并加上一些需要的功能.
tool目录代表了整个工具模块
tool/bin/tool是命令运行文件
#!/usr/bin/env node是必须的。在linux的脚本里,这条语句用来指定脚本的解释程序。这里指定使用node作为解释程序。
下面的语句则完全由node来解释了,终于不需要C那笨拙的语法了。
process: 全局模块,代表了当前进程
process.argv: 命令行输入的参数数组。
当运行
在package.json中添加bin,在安装的时候,这一项会将tool/bin/tool文件复制到/usr/local/bin/ :
1 ) 编辑 tool/bin/tool :
获得如下tool工具:
2 ) 编辑测试文件
3 ) 安装tool工具
4 ) 测试
如果没有错误,可以看到
~#gcc test.c
~#git add .
用javascript就可以写出类似的工具,NPM就是一个例子.
目标
我们想制作一个编译工具tool,当运行~#tool test.js test2.js test3.js
会把文件合并、并加上一些需要的功能.
Step 1
制作 tool tool/bin tool/bin/tool :tool目录代表了整个工具模块
tool/bin/tool是命令运行文件
~# mkdir tool ~# cd tool ~tool# mkdir bin ~tool# cd bin ~tool/bin# vi tool
Step 2
编辑 tool/bin/tool :#!/usr/bin/env node var node = process.argv[0]; // node命令 var tool = process.argv[1]; // tool文件 var args = process.argv.slice(2); // 其他参数
#!/usr/bin/env node是必须的。在linux的脚本里,这条语句用来指定脚本的解释程序。这里指定使用node作为解释程序。
下面的语句则完全由node来解释了,终于不需要C那笨拙的语法了。
process: 全局模块,代表了当前进程
process.argv: 命令行输入的参数数组。
当运行
~# tool test.js时,第一个是'node',第二个是'tool',第三个是'test.js',…
Step 3
建立 package.json :~tool#npm init,输入模块信息.
在package.json中添加bin,在安装的时候,这一项会将tool/bin/tool文件复制到/usr/local/bin/ :
{ "bin": { "tool": "./bin/tool" } }
Step 4
编写个 Hello world! 来测试通信:1 ) 编辑 tool/bin/tool :
#!/usr/bin/env node var node = process.argv[0]; var tool = process.argv[1]; var file = process.argv[2]; if (file) { var child = require("child_process").spawn(node, [file]); child.stdout.on("data", function (data) { process.stdout.write(data); }); } console.log("start tool.");
获得如下tool工具:
tool |—— bin | |—— tool |—— package.json
2 ) 编辑测试文件
~# vi test.js:
console.log('Hello world!');
3 ) 安装tool工具
~# npm install -g ./tool
4 ) 测试
~# tool test.js
如果没有错误,可以看到
start tool. Hello world!
相关文章推荐
- Nodejs编译Native Code:使用C++构建工具npm
- Linux环境下node.js环境的搭建以及配置,使用node.js编写工具与简化less编译
- 使用node.js编写工具简化less编译(less2css.js)
- NodeJSnpm工具介绍和使用
- 使用node.js编写工具简化less编译(less2css.js)
- 使用nodejs、ejsExcel、express、vuejs编写一个excel转json的工具——第一步:创建vuejs项目并搭建开发环境
- .net dll反编译工具。可以使用
- jakarta-ant的使用(java编译工具)
- 使用pl/sql developer开发工具无法编译存储过程,触发器,包等程序文件
- 使用python编写每日构建工具
- 微软自带的防反编译工具dotfuscator.exe的使用
- jad反编译工具的使用
- C#反编译工具Reflector使用方法,(支持VB、Delphi等)
- 自动编译工具及脚本编写
- Linux下使用交叉编译工具开发powerpc(mpc83xx)
- 反编译工具jad的使用(将*.class文件变成*.java文件,附带jad.zip包)[转]
- [图解]Symbian 编程总结-工具与扩展-让Symbian SDK使用最新的GCCE进行编译
- 反编译工具JAD的使用
- ※jakarta-ant的使用(java编译工具)※
- 使用C#编写邮件发送工具