系统环境:centos

下午使用npm安装“cheerio”,想搞爬虫玩玩。

npm安装有两种模式:

本地 # npm install cheerio

全局 # npm install cheerio -g

如果想要全局安装,你首先要先设置个全局路径

我在"node的安装位置/lib/node_modules/"目录下新建了文件夹node_global专门用来存放新安装的全局包

# npm config set cache "node的安装位置/lib/node_modules/node_global"

# npm config set prefix "node的安装位置/lib/node_modules/node_global"

这个时候可以安装了

# npm install cheerio -g

安装好之后,赶紧打开node,试着require刚安装的全局包

var n = require('cheerio')
Error: Cannot find module 'cheerio'
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)

失败了!!!

网上查了一大堆博客,原来是忘了设置环境变量。

NODE_PATH

关键的地方来了:

NODE_PATH怎么写?

不要误以为就是你的刚设置的全局目录,我那样填写了。完全没用。

实际上你可以通过下面这个命令查看一下cheerio到底在哪里。然后NODE_PATH就设置哪里

#npm list -g

我的系统显示如下:

/usr/node-v6.10.0-linux-x64/lib/node_modules/node_global/lib
├─┬ cheerio@0.22.0
│ ├─┬ css-select@1.2.0
│ │ ├── boolbase@1.0.0
│ │ ├── css-what@2.1.0
│ │ ├── domutils@1.5.1
│ │ └── nth-check@1.0.1
│ ├─┬ dom-serializer@0.1.0
│ │ └── domelementtype@1.1.3
│ ├── entities@1.1.1
│ ├─┬ htmlparser2@3.9.2
│ │ ├── domelementtype@1.3.0
│ │ ├── domhandler@2.3.0
│ │ ├── inherits@2.0.3

我是这样配置的:

# vim /etc/profile

#添加下面两行

export NODE_HOME=/usr/node-v6.10.0-linux-x64/lib/node_modules/node_global
export NODE_PATH=$NODE_HOME:$NODE_HOME/lib/node_modules

保存退出

别忘了

# source /etc/profile 使其生效

再次测试require

[root@aliyun node-v6.10.0-linux-x64]#node
> var n = require('cheerio')

undefined
>

不再报错了!

关于npm安装全局模块,require时报Error: Cannot find module 'XXX'的解决办法的更多相关文章

  1. Vue安装Vue Devtools调试工具提示 Error: Cannot find module '@vue-devtools/build-tools' 解决办法

    我看网络上面安装Vue Devtools 调试工具的步骤几乎都是按照文章链接里的步骤进行安装, 但是在最终执行编译命令的时候 :npm run build ,提示如下错误: 尝试了很多方法,都不能解决 ...

  2. [nodejs]修改全局包位置,修复npm安装全局模块命令失效。好记性不如烂笔头

    修复npm -g 全局安装命令失效,好的吧不得不承认,好记性不如烂笔头,我居然会忘记方法哈哈哈 Linux安装nodejs sudo apt install node sudo apt install ...

  3. npm安装出错的时候,如何使用国内的镜像!--解决办法

    在前端开发领域,Node已经很普遍了,使用Node就会使用到一些包.所以常用的 npm 就会经常使用得到,但是在使用 npm 安装一些包的过程中,会发现安装的速度会很慢,而且很多时候直接安装不了. 百 ...

  4. Win10下安装msi程序包时报2503、2502错误问题及其解决办法

    Win10系统下安装TortoiseSvn.Node.js时(.msi后缀的安装文件),在点击安装时老是提示2503,2502错误,因此无法安装上. 搜索了下一般都提到是权限不够引起的该问题.但是右键 ...

  5. Node.js Error: Cannot find module express的解决办法

    1.全局安装express框架,cmd打开命令行,输入如下命令: npm install -g express express 4.x版本中将命令工具分出来,安装一个命令工具,执行命令: npm in ...

  6. Node.js Error: Cannot find module express的解决办法(转载)

    1.全局安装express框架,cmd打开命令行,输入如下命令: npm install -g express express 4.x版本中将命令工具分出来,安装一个命令工具,执行命令: npm in ...

  7. npm安装删除模块以及cnpm淘宝镜像

    npm安装模块 [$ npm install xxx]利用 npm 安装xxx模块到当前命令行所在目录: [$ npm install -g xxx]利用npm安装全局模块xxx: npm 删除模块 ...

  8. npm 安装 卸载 模块(转载)

    来源 https://blog.csdn.net/yihanzhi/article/details/75665959 利用npm 安装删除模块 npm安装模块 [npm install xxx]利用 ...

  9. npm 安装卸载模块

    npm安装模块 npm install xxx利用 npm 安装xxx模块到当前命令行所在目录 npm install -g xxx利用npm安装全局模块xxx 1 2 本地安装时将模块写入packa ...

随机推荐

  1. 语句 if else

    语句 语句是指程序命令,都是按照顺序执行的.语句在程序中的执行顺序称为“控制流”或“执行流”. 根据程序对运行时所收到的输入的响应,在程序每次运行时控制流可能有所不同. 语句间的标点符号必须是英文标点 ...

  2. DB2 表空间监控

    默认DB2 缓冲池信息监控是OFF, 需要开启(DB2表空间是由缓冲池分配的) CollBufferpool : ============ The CollBufferpool collector c ...

  3. 树莓派上搭建arduino开发环境

    -------------还是博客园上面的格式看这舒服,不去新浪了------------- 为什么要在树莓派上开发arduino呢?总要把树莓派用起来嘛,不然老吃灰. 树莓派使用SSH时没有图形界面 ...

  4. ASP.NET MVC5 实现分页查询

    对于大量数据的查询和展示使用分页是一种不错的选择,这篇文章简要介绍下自己实现分页查询的思路. 分页需要三个变量:数据总量.每页显示的数据条数.当前页码. //数据总量 int dataCount; / ...

  5. NodeJS 框架一览

    Express 当你使用Node.js构建web应用程序时, Express通常被视为事实上的Web服务器.它的哲学(一个可以使用中间件包扩展的简约核心)是大多数Node.js开发者所熟悉的. Koa ...

  6. 纪中集训 Day 4

    今天(其实是昨天)不考试= = 所以就刷题了 = = 早上无所事事,想把几道题刷过却很不爽的全删了 下午觉得不能这样了,把BZOJ 过了两道水的DP (计算几何根本不会啊QAQ) 晚上先水了一题之后, ...

  7. [Hadoop] - Protocol Buffer安装

    Hadoop从2.x版本开始,底层的RPC远程调用使用ProtocolBuffer格式来传递数据,所以在编译Hadoop的过程中有可能出现提示缺少Protocol服务的异常信息,类似:'protoc ...

  8. mysql 常用命令集锦

    Mysql安装目录数据库目录/var/lib/mysql/配置文件/usr/share/mysql(mysql.server命令及配置文件)相关命令/usr/bin(mysqladmin mysqld ...

  9. API抓屏

    需调用API函数 需在开头引入命名空间 using System.Runtime.InteropServices; 获取当前窗口句柄:GetForegroundWindow() [DllImport( ...

  10. Spring框架---Spring入门

    Spring入门 为了能更好的理解先讲一些有的没的的东西: 什么是Spring Spring是分层的JavaSE/EE full-stack(一站式) 轻量级开源框架 分层 SUN提供的EE的三层结构 ...