在windows下,我們做js構建工作,都習慣安裝grunt-cli,只需要命令列grunt。。。一切構建工作都自動完成了。這已經是很完美的情況了,不過最近要做乙個伺服器版的自動化構建系統,在nodejs中呼叫批處理執行grunt就顯得很矬,而且各種問題。是否有更好,更漂亮的方式呢?
grunt本來就是nodejs程式,安裝後表現為乙個node_module,那麼cli是什麼呢?這只是乙個nodejs寫的命令列介面。所以,nodejs肯定可以直接在js層面呼叫grunt。
我們需要做的,只需要揭開cli的面紗。
首先,看看cli安裝後的位置:
(win7)
cli主要**是一堆引數判斷處理,但最終實際關鍵點是grunt.cli( )
#!/usr/bin/env node'use strict';
process.title = 'grunt';
//especially badass external libs.
var findup = require('findup-sync');
var resolve = require('resolve').sync;
//internal libs.
var options = require('../lib/cli').options;
var completion = require('../lib/completion');
var info = require('../lib/info');
var path = require('path');
var basedir =process.cwd();
vargruntpath;
//do stuff based on cli options.
if ('completion' in
options)
else
if(options.version)
else
if (options.base && !options.gruntfile)
else
if(options.gruntfile)
try);
} catch
(ex)
if(options.help)
info.fatal('unable to find local grunt.', 99);
}}//everything looks good. require local grunt and run it.
require(gruntpath).cli();
那麼我們回到自己的nodejs專案中,先安裝好grunt模組,然後在js**中輕輕寫上兩句:
var grunt = require('grunt');
console.log(grunt.cli);
grunt.cli(,而是乙份引數說明!!!不得不佩服作者的用心良苦。
nodejs呼叫c dll感想
這幾天折騰了幾天終於搞定了,nodejs呼叫c dll的問題,回想起來有一下幾個難點 1 函式引數,型別如下 unsigned short arg0 args 0 uint32value 其他整數型別類似 args 0 tostring string newfromutf8 isolate,data...
nodejs呼叫SendCloud郵件API2 0
sendcloud作為專業的第三方郵件傳送服務提供商,具有高效和穩定的特點,很好地滿足平時業務中的相關需求。前一陣在使用時發現原有的郵件api介面公升級到2.0了,對於普通傳送功能而言,主要的區別在於傳遞的引數從body引數變成了query引數,由於sendcloud官網還未給出nodejs版本的示...
performSelector與直接呼叫的區別
performselector與直接呼叫的區別 1 直接呼叫 delegate image self didfinishwithimage image 2 使用 performselector呼叫 delegate performselector selector image didfinishwi...