有时使用npm install命令有些依赖包无法成功安装,出现如下提示:
Failed to execute '/root/nodejs/bin/node /root/nodejs/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --module=/root/portal/node_modules/sqlite3/lib/binding/node-v57-linux-x64/node_sqlite3.node --module_name=node_sqlite3 --module_path=/root/portal/node_modules/sqlite3/lib/binding/node-v57-linux-x64' (1)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! sqlite3@3.1.13 install: `node-pre-gyp install --fallback-to-build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the sqlite3@3.1.13 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
以上提示sqlite3没有安装成功,由于npm包管理服务器在美国,故我们如果直接使用npm -install安装某包,有些时候会出现安装失败。所以,为了更好的使用体验采用了淘宝的 NPM 镜像,它是一个完整的npmjs.org镜像。
1.通过定制的 cnpm 命令行工具代替默认的 npm
npm install -g cnpm --registry=http://registry.npm.taobao.org
2.检查cnpm是否安装成功:
cnpm -v
有时没有成功,是没有设置成全局,即-g没有放到全局目录下,Linux下课查看/usr/local/bin下有没有创建cnpm的软链接:如下:
[root@localhost bin]# ls -l
total 7592
lrwxrwxrwx. 1 root root 22 Jul 2 16:58 bower -> /root/nodejs/bin/bower
-rwxr-xr-x. 1 root root 5181880 Dec 22 2017 care-redis_server
lrwxrwxrwx. 1 root root 21 Jun 28 16:19 cnpm -> /root/nodejs/bin/cnpm
lrwxrwxrwx. 1 root root 24 Jun 27 10:53 express -> /root/nodejs/bin/express
lrwxrwxrwx. 1 root root 21 Jun 26 11:53 node -> /root/nodejs/bin/node
lrwxrwxrwx. 1 root root 20 Jun 26 11:53 npm -> /root/nodejs/bin/npm
-rwxr-xr-x. 1 root root 2584888 Dec 22 2017 redis-cli
3.安装具体模块
cnpm install [name]
如:cnpm install sqlite3