nodejs require模块找不到怎么解决?

用npm全局安装模块后,有时在程序使用的时候require会报找不到模块,要如何解决?nodejs是在module.paths包含的目录列表中寻找模块的,所以,要解决这个问题就是将全局模块加入到module.paths目录列表中。

全局安装模块后在程序里面require这个模块报错,模块找不到。如下图所示,首先按照正常的方式npm install -g express全局安装express模块。然后在测试require(‘express‘)报错

那么问题就出在nodejs怎么查找模块上。首先,我们要知道npm全局安装到底把模块安装到了哪个目录下面。在终端运行npm prefix -g命令会打印出安装路径。而nodejs查找模块是在module.paths目录列表下面查找的。

所以,一种解决方案是在程序中将npm全局安装路径添加到module.paths中。

module.paths.push(‘全局安装路径‘)。然后再测试可行。

这种方案只对当前js有效。

另一种是添加环境变量NODE_PATH,值就设置成全局安装路径。如图中所示,添加后测试可行。

其实,添加环境变量NODE_PATH后,我们再去查看module.paths时会发现环境变量中的路径也已经在module.paths中了。

所以,最方便的解决办法就是:npm prefix -g 找到全局安装的路径,然后添加到环境变量NODE_PATH中。

来自:https://m.html.cn/qa/node-js/10597.html

原文地址:https://www.cnblogs.com/xiaofenguo/p/12084391.html

时间: 2024-10-08 23:18:43

nodejs require模块找不到怎么解决?的相关文章

Python升级提示Tkinter模块找不到的解决方法

一.安装tkinter在Linux中python默认是不安装Tkinter模块,复制代码 代码如下:[[email protected] ~]# pythonPython 2.6.6 (r266:84292, Feb 22 2013, 00:00:18) [GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2Type "help", "copyright", "credits" or "lice

nodejs的require模块及路径

在nodejs中,模块大概可以分为核心模块和文件模块. 核心模块是被编译成二进制代码,引用的时候只需require表示符即可,如(require('net')). 文件模块,则是指js文件.json文件或者是.node文件.在引用文件模块的时候后要加上文件的路径:/-/-/xxx.js表示绝对路径../xxx.js表示相对路径(同一文件夹下的xxx.js),../表示上一级目录.如果既不加/-/.../又不加./的话,则该模块要么是核心模块,要么是从一个node_modules文件夹加载. 对于

Linux升级Python提示Tkinter模块找不到解决

一.安装tkinter 在Linux中python默认是不安装Tkinter模块, [[email protected]193 ~]# python Python 2.6.6 (r266:84292, Feb 22 2013, 00:00:18) [GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2 Type "help", "copyright", "credits" or "license

nodejs require执行流程

为什么要加这个必读!因为webpack本身是基于node环境的, 里面会涉及很多路径问题,我们可能对paths怎么写!webpack又是怎么找到这些paths的很迷惑. 本文是我已经写完正式学习React(五)后新加的!我觉得很有必要让大家知道! ------------------------------------------------------------------------------------------------------ nodejs require执行流程  ===

nodejs cheerio模块提取html页面内容

nodejs cheerio模块提取html页面内容 Table of Contents 1. nodejs cheerio模块提取html页面内容 1.1. 找到目标元素 1.2. 美化文本输出 1.3. 提取答案文本 1.4. 最终代码 本文给出使用一个用cheerio模块提取html文件中指定内容的例子,并说明具体步骤.涉及到的API.以及其它模块. cheerio模块是一个类似jquery的模块,具有相似的API.功能,能够将一个网页解析为DOM,以及通过selector选择元素,设置.

Linux中npm出现npmlog找不到的解决方法

?Linux中npm出现npmlog找不到的解决方法 描述 今天在对nodejs项目进行服务器迁移的时,在新的linux服务器上输入 npm -v 命令后报 "cannot find module 'npmlog'-."的错误.找到的原因是拷贝过去的bin目录下的npm文件并没有链接到module目录下的npm-cli.js文件,所以导致在执行 npm -v 命令时,路径问题导致npmlog模块无法找到. 解决方法 解决的方法有两个,一个是删除bin目录下的npm文件,并用如下命令链接

Nodejs mkdirP 模块导致CPU占用高的问题

Nodejs mkdirP 模块导致CPU占用高的问题 近期将nodejs项目部署到服务器上并启动时,发现node进程的cpu占用率在40%左右,当时表示非常不解,刚启动的服务并没有运行什么需要大量消耗cpu的逻辑,且此时还未有请求发送到服务器端. 鉴于这种情况,只能猜测是某段程序在初始化一些东西的时候异常,所以才导致了这种情况. 经过对代码的排查后,最终锁定出为题的代码块如下: router.use(multer({ dest: config.uploadDir, limits:{ fileS

配置 Windows 下的 nodejs C++ 模块编译环境 安装 node-gyp

配置 Windows 下的 nodejs C++ 模块编译环境 根据 node-gyp 指示的 Windows 编译环境说明, 简单一句话就是 "Python + VC++ 编译环境". 所有需要的安装文件, 我都下载好放到百度云盘了: nodejs-gyp-windows Python 安装 python-2.7.7.msi iso 虚拟磁盘 安装 DTLite4491-0356.exe Windows XP 文件在: node-gyp-windows/windowsXP 用 DTL

NodeJS http 模块

#4 NodeJS http 模块 工作目录 server.js var http = require('http'); var fs = require('fs'); var path = require('path'); var mime = require('mime'); function send404(response){      response.writeHead(404,{           'Content-Type':'text/plain'      });