node.js - Node 无法找到模块(即使已安装)

标签 node.js npm

我正在使用 CLI utility headless 浏览器包编写 zombie

最初,我根据需要在本地安装依赖项 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 是错误的还是我在某个地方搞砸了我的 Node 安装?

顺便说一句,我还尝试在单独的目录中安装 zombie fresh 并运行一个非常简单的脚本(如下),但我得到了相同的找不到模块错误。

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"
}

最佳答案

这可能是 zombie 包中的错误,您应该向上游报告:https://github.com/assaf/zombie

这个错误的原因是在 npm install 之后,node_modules/zombie 文件夹中缺少一些必要的文件。即:那里缺少 lib 文件夹。 zombiepackage.json指定入口点如下:

"main": "lib/zombie",

更改为 node_modules/zombie 并在其中运行 npm install 解决了这个问题,构建过程正确地创建了 lib 文件夹。

关于node.js - Node 无法找到模块(即使已安装),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28357881/

相关文章:

node.js - Apache、NodeJs、服务器发送事件

node.js - Node 命令行工具未在 vagrant 上编译

json - 告诉 npm install 摆脱不再需要的依赖项

react-native - Expo CLI已全局安装,但是 "npm start"命令仍然询问

javascript - Node.js Heroku App 应用程序错误。日志有问题

node.js - 如何输入自定义异步 Express 处理程序,以便透明地传递通用类型参数

node.js - 在没有前端的AWS Node 服务器中将HTML转换为图像

node.js - 错误 : Request failed with status code 405 , 有效负载返回 HTML,而不是预期的 JSON

javascript - Gulp- javascript 文件的版本控制

node.js - React App 和 Express API 的单个可执行文件