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’

npm全局安装目录

当使用npm安装一些全局的软件包时,不知道安装到了什么位置,可以使用命令 npm root -g 进行查询:
在这里插入图片描述

#默认的全局模块安装位置:
npm root -g  查看 (根据用户选择)

#修改:
npm config set prefix '路径'       
#查看
npm config get prefix '路径’

#npm root -g 查看的内容是在: prefix 设置的路径后面:+'/lib/node_modules

#缓存
npm config set cache "路径"

#查看整个npm配置
npm config list
npm config ls -l

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值