簡體   English   中英

在節點中遍歷目錄(粗體)

[英]Traversing directory in Node (Grunt)

構建grunt插件時遇到一個奇怪的問題。

基本上,我想在自己的grunt任務中使用node_module。 為此,我想向上遍歷一個層次,然后向下遍歷節點模塊以專門調用它們的一個文件。

最初,我想這樣做:

../node_modules/github-changes/bin/index.js

但是,出現以下錯誤:

Warning: Command failed: /bin/sh: 1: ../node_modules/github-changes/bin/index.js: not found
Use --force to continue.

因此,現在我有了使用Node的__dirname變量的技巧,但是它不是很漂亮:

var dirHack = __dirname.replace("/tasks", ""), // Terrible hack, need to fix
       ghC = dirHack + '/node_modules/github-changes/bin/index.js';

這行得通,但是我很想避免它。

您可以在此處看到該行。

缺少什么導致了該錯誤? 我在這里想念什么嗎?

如果github-changes是依賴項,則可以使用ghC = require.resolve('github-changes/bin/index.js')解析包中文件的路徑。

但是,您遇到該錯誤是因為您試圖將該文件作為外殼腳本運行,而事實並非如此。 您需要使用node運行它。 查找節點可執行文件路徑的最簡單方法是process.execPath 請參閱http://nodejs.org/api/process.html#process_process_execpath

這是一個例子:

var exec = require('child_process').exec;
var ghC = require.resolve('github-changes/bin/index.js');
exec(process.execPath + ' ' + ghC, function(error) {});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM