2015-02-06 111 views
4

我正在使用zombie無頭瀏覽器軟件包編寫CLI utility節點無法找到模塊(即使已安裝)

最初,我在本地安裝了依賴關係,因爲我需要他們npm install zombie foo bar和腳本工作得很好。

但由於寫的package.json每次我嘗試安裝或本地運行該腳本,我得到這個模塊錯誤:

$ node index.js 

module.js:340 
    throw err; 
     ^
Error: Cannot find module 'zombie' 
    at Function.Module._resolveFilename (module.js:338:15) 
    at Function.Module._load (module.js:280:25) 
    at Module.require (module.js:364:17) 
    at require (module.js:380:17) 
    at Object.<anonymous> (/Users/neal/Downloads/cpupdate-exp/index.js:2:15) 
    at Module._compile (module.js:456:26) 
    at Object.Module._extensions..js (module.js:474:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Function.Module.runMain (module.js:497:10) 

出現這種情況,無論我再怎麼安裝軟件包。這是沒有意義的。我可以在我的當地node_modules目錄&中看到他們的一切。

所以我想我的問題是,我的package.json是錯誤的還是我一直搞亂我的節點安裝?

順便說一句,我也嘗試安裝新的殭屍在一個單獨的目錄&運行一個非常簡單的腳本(下同),但我得到同樣的錯誤Cannot find module

var browser = require("zombie"); 
var assert = require("assert"); 

b = new browser(); 
b.visit("http://nealshyam.com/", function() { 
assert.ok(browser.success); 
console.log(browser.text("title")); 
}); 

的package.json:

{ 
    "author": "Neal Shyam", 
    "name": "cpupdate", 
    "version": "0.1.1", 
    "description": "Update your ChallengePost Portfolio with node.js", 
    "homepage": "http://challengepost.com/software/cpupdate", 
    "license": "MIT", 
    "bugs":{ 
    "url":"https://github.com/nealrs/cpupdate/issues", 
    "email":"[email protected]" 
    }, 
    "repository": { 
    "type": "git", 
    "url": "[email protected]:nealrs/cpupdate.git" 
    }, 
    "bin": "./index.js", 
    "keywords": [ 
    "ChallengePost", 
    "update", 
    "portfolio" 
    ], 
    "dependencies": { 
    "zombie": "assaf/zombie", 
    "assert": "defunctzombie/commonjs-assert", 
    "open": "pwnall/node-open", 
    "colors": "Marak/colors.js", 
    "nomnom": "harthur/nomnom" 
    }, 
    "preferGlobal": "true" 
} 

回答

3

這可能是在zombie包中的錯誤,你應該報告的上游:https://github.com/assaf/zombie

這樣做的原因錯誤是,經過npm install一些必要的文件在node_modules/zombie文件夾中丟失。即:lib文件夾在那裏丟失。的zombiepackage.json指定入口點如下:

"main": "lib/zombie", 

轉變成node_modules/zombie和運行npm install在那裏解決問題,構建過程正確地創建lib文件夾。

+0

噢 - 好吧,我沒有瘋狂。謝謝!! – nealrs 2015-02-06 16:04:13

0

TimWolla的解決方案對我無效。對我而言,只是轉到另一個文件夾並執行npm install [email protected],然後返回到我的項目中,刪除了node_modules文件夾,併爲該項目再次執行了npm install。 lib文件夾被創建並且殭屍工作。