前言
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’