国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

詳解Node.js 命令行程序開發教程

2024-05-06 15:16:12
字體:
來源:轉載
供稿:網友

一種編程語言是否易用,很大程度上,取決于開發命令行程序的能力。

Node.js 作為目前最熱門的開發工具之一,怎樣使用它開發命令行程序,是 Web 開發者應該掌握的技能。

下面就是我在它的基礎上擴展的教程,應該是目前最好的解決方案了。

一、可執行腳本

我們從最簡單的講起。

首先,使用 JavaScript 語言,寫一個可執行腳本 hello 。

#!/usr/bin/env nodeconsole.log('hello world');

然后,修改 hello 的權限。

$ chmod 755 hello

現在,hello 就可以執行了。

$ ./hellohello world

如果想把 hello 前面的路徑去除,可以將 hello 的路徑加入環境變量 PATH。但是,另一種更好的做法,是在當前目錄下新建 package.json ,寫入下面的內容。

{ "name": "hello", "bin": {  "hello": "hello" }}

然后執行 npm link 命令。

$ npm link

現在再執行 hello ,就不用輸入路徑了。

$ hellohello world

二、命令行參數的原始寫法

命令行參數可以用系統變量 process.argv 獲取。

下面是一個腳本 hello 。

#!/usr/bin/env nodeconsole.log('hello ', process.argv[2]);

執行時,直接在腳本文件后面,加上參數即可。

$ ./hello tomhello tom

上面代碼中,實際上執行的是 node ./hello tom ,對應的 process.argv 是 ['node', '/path/to/hello', 'tom'] 。

三、新建進程

腳本可以通過 child_process 模塊新建子進程,從而執行 Unix 系統命令。

#!/usr/bin/env nodevar name = process.argv[2];var exec = require('child_process').exec;var child = exec('echo hello ' + name, function(err, stdout, stderr) { if (err) throw err; console.log(stdout);});

用法如下。

$ ./hello tomhello tom

四、shelljs 模塊

shelljs 模塊重新包裝了 child_process,調用系統命令更加方便。它需要安裝后使用。

npm install --save shelljs

然后,改寫腳本。

#!/usr/bin/env nodevar name = process.argv[2];var shell = require("shelljs");shell.exec("echo hello " + name);

上面代碼是 shelljs 的本地模式,即通過 exec 方法執行 shell 命令。此外還有全局模式,允許直接在腳本中寫 shell 命令。

require('shelljs/global');if (!which('git')) { echo('Sorry, this script requires git'); exit(1);}mkdir('-p', 'out/Release');cp('-R', 'stuff/*', 'out/Release');cd('lib');ls('*.js').forEach(function(file) { sed('-i', 'BUILD_VERSION', 'v0.1.2', file); sed('-i', /.*REMOVE_THIS_LINE.*/n/, '', file); sed('-i', /.*REPLACE_LINE_WITH_MACRO.*/n/, cat('macro.js'), file);});cd('..');if (exec('git commit -am "Auto-commit"').code !== 0) { echo('Error: Git commit failed'); exit(1);}            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 东乌| 南康市| 邮箱| 乌鲁木齐县| 筠连县| 塘沽区| 苏尼特左旗| 华宁县| 鞍山市| 兴安盟| 吉林市| 二连浩特市| 湘阴县| 甘孜| 兰溪市| 施甸县| 临安市| 桦南县| 内丘县| 叙永县| 彭泽县| 朝阳区| 宜城市| 崇礼县| 肥东县| 宝清县| 洛隆县| 肥乡县| 丰镇市| 海安县| 永宁县| 兴和县| 麦盖提县| 满城县| 阿图什市| 潮州市| 吐鲁番市| 马尔康县| 龙海市| 和平县| 察隅县|