有時使用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! [email protected] install: `node-pre-gyp install --fallback-to-build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] 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