2015-02-06 126 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文件夹被创建并且僵尸工作。

相关问题