nodejs找不到模块

前言

npm 下载模块的时候,可能会慢。 可以下载淘宝镜像

淘宝镜像

npm install -g cnpm

可以用淘宝镜像,在项目中安装MySQL模块

cnpm install mysq -g

找不到模块的情况

1. 全局下载以后,配置上路径

全局下载以后,如果出现找不到模块的情况,

> node
> module.paths    //查看模块的查找路径
//如果模块中没有 默认的全局模块路径,添加上
> module.paths.push('xxxx')           //添加
> module.paths.pop()                //删除,从最后一个开始

找全局默认路径,

npm config get prefix

在这里插入图片描述
找到mysql模块位置,加入module.paths 路径中以后
在这里插入图片描述

在module.paths 中加入mysql模块所在的c盘路径,还是报错

接着还是出现问题:
在这里插入图片描述

在项目的目录下,执行cnpm install mysql

执行程序成功了

在这里插入图片描述
在这里插入图片描述
查到资料找到解释:
起初我以为要把所有的module 都放在nodejs安装目录下的 node_modules 中。如果工程代码(指自己写的工程)也放在这,那么是可以使用的,但是如果nodejs安装在c盘,而工程代码在d盘,那么这个模块是引用不到的。 C:\Users\SMouse\AppData\Roaming\npm\node-modules路径也是同理。

node中引用自定义模块(非核心模块)时会进行如下三个步骤

1.路径分析

2.文件定位

3.编译执行

而路径分析是安如下方式进行的:

1)当前目录下的node_modules目录,

2)父目录下的node_modules目录;

3)父目录的父目录下的node_modules目录;

4)逐级递归,直到根目录下的node_modules目录。

如果这些目录中均未找到代码中所引用的module,那么就会报出错误:Cannot find module ‘mysql’

发布了70 篇原创文章 · 获赞 1 · 访问量 1234

猜你喜欢

转载自blog.csdn.net/weixin_39658118/article/details/103927905