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

来源:互联网 发布:视频音频合并软件 编辑:程序博客网 时间:2024/05/22 06:07

Question

今天在对nodejs项目进行服务器迁移的时,在新的linux服务器上输入 npm -v 命令后报 “cannot find module ‘npmlog’….”的错误。找到的原因是拷贝过去的bin目录下的npm文件并没有链接到module目录下的npm-cli.js文件,所以导致在执行 npm -v命令时,路径问题导致npmlog模块无法找到。

具体错误信息如下所示:

# npm -vmodule.js:338    throw err;          ^Error: Cannot find module 'npmlog'    at Function.Module._resolveFilename (module.js:336:15)    at Function.Module._load (module.js:278:25)    at Module.require (module.js:365:17)    at require (module.js:384:17)    at /usr/local/lib/node_modules/npm/bin/npm-cli.js:18:11    at Object.<anonymous> (/usr/local/lib/node_modules/npm/bin/npm-cli.js:75:3)    at Module._compile (module.js:460:26)    at Object.Module._extensions..js (module.js:478:10)    at Module.load (module.js:355:32)    at Function.Module._load (module.js:310:12)

Answer

解决的方法有两个,一个是删除bin目录下的npm文件,并用如下命令链接到npm-cli.js。

ln -s ../lib/node_modules/npm/bin/npm-cli.js

经过试验发现,在服务器外解压缩nodejs官网下载的编译好的压缩包,再将解压的文件拷贝到服务器上时,bin下的npm是没有链接到npm-cli.js的。

第二种方式是将下载好的node-v0.10.33-linux-x64.tar.gz压缩包先放置在服务器上,再进行解压缩,此时npm是已经链接到npm-cli.js的。

看到命令行中显示如下则为成功。

[root@linux bin]# llnpm -> ../lib/node_modules/npm/bin/npm-cli.js[root@linux bin]# ./npm -vv1.4.26

这两种拷贝方式导致不同的情况的原因不详,有待考究。


Reference

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


More

[1] Get Error: Cannot find module ‘npmlog’ when installing Browserfy

阅读全文
0 0
原创粉丝点击