我正在使用 zombie无头浏览器包编写 CLI utility. 最初,我在本地安装了依赖项,因为我需要它们npm install zombie foo bar并且脚本运行得很好. 但是自从我每次尝试在本地安装或运行脚本时都编写
最初,我在本地安装了依赖项,因为我需要它们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是错误的还是我在整个过程中某处弄乱了我的节点安装?
顺便说一句,我也试过在一个单独的目录中安装僵尸.运行一个非常简单的脚本(下面),但我得到相同的无法找到模块错误.
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":"neal@challengepost.com" }, "repository": { "type": "git", "url": "git@github.com: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" }这可能是你应该向上游报告的僵尸包中的一个错误: https://github.com/assaf/zombie
出现此错误的原因是在npm安装后,node_modules / zombie文件夹中缺少一些必要的文件.即:那里缺少lib文件夹. zombie的package.json指定入口点如下:
"main": "lib/zombie",
更改为node_modules / zombie并在其中运行npm install修复了该问题,构建过程正确创建了lib文件夹.