總結:
1、npm install 會先查找本地已經下載過的包,不論版本是多少,找到了就不會去下載,所以如果要升級依賴,可以使用npm update或者顯示安裝npm install cross-env --save
2、npm install 會先下載項目中的依賴包,然后下載依賴的依賴,這樣就會導致,生成的文件是樹形結構,並且存在許多重復的包,所以這個時候npm就會將依賴扁平化,將依賴的依賴提取到第一層,遇到版本號不一致的也會保留,遇到完全一致的就會刪除。
3、最后還會提取依賴中的bin文件,windows操作系統生成cmd文件,linux系統生成軟連接
驗證:
[192.144.163.27:root@xlp89 /var/www/html/qiantai/AICall/nodejs]# npm install
腳本:start_nodejs.sh stop_nodejs.sh reload_nodejs.sh restart_nodejs.sh
[154.8.159.209:root@xlp117 /var/www/html/qiantai/nodejs/smsAdapter]# ll
total 228
-rw-r--r-- 1 root root 1636 Mar 20 14:05 app.js
drwxr-xr-x 2 root root 4096 Mar 20 14:17 bin
drwxr-xr-x 2 root root 4096 Mar 20 14:05 config
drwxr-xr-x 3 root root 4096 Mar 23 14:49 lib
drwxr-xr-x 2 root root 4096 Mar 20 14:05 logs
drwxr-xr-x 397 root root 12288 Mar 20 14:17 node_modules
-rw-r--r-- 1 root root 734 Mar 20 14:05 package.json
-rw-r--r-- 1 root root 153222 Mar 20 14:16 package-lock.json
drwxr-xr-x 5 root root 4096 Mar 20 14:05 public
-rwxr-xr-x 1 root root 129 Mar 20 14:05 reload_nodejs.sh
-rwxr-xr-x 1 root root 131 Mar 20 14:05 restart_nodejs.sh
drwxr-xr-x 2 root root 4096 Mar 20 14:05 routes
drwxr-xr-x 2 root root 4096 Mar 20 14:05 run
-rwxr-xr-x 1 root root 198 Mar 20 14:05 start_nodejs.sh
-rwxr-xr-x 1 root root 109 Mar 20 14:05 stop_nodejs.sh
drwxr-xr-x 2 root root 4096 Mar 20 14:05 test
drwxr-xr-x 2 root root 4096 Mar 20 14:05 views
//=============================================================================================================
[154.8.159.209:root@xlp117 /var/www/html/qiantai/nodejs/smsAdapter]# cat start_nodejs.sh
#!/bin/bash
#
cd /var/www/html/qiantai/nodejs/smsAdapter ; npm i
su -l www-data -c "cd /var/www/html/qiantai/nodejs/smsAdapter ; pm2 start config/ecosystem.config.js"
su - www-data -c "pm2 list"[154.8.159.209:root@xlp117 /var/www/html/qiantai/nodejs/smsAdapter]# cat stop_nodejs.sh
#!/bin/bash
#
su - www-data -c " pm2 stop all"
su - www-data -c " pm2 del all"
su - www-data -c " pm2 kill"
[154.8.159.209:root@xlp117 /var/www/html/qiantai/nodejs/smsAdapter]# cat reload_nodejs.sh
#!/bin/bash
#
cd /var/www/html/qiantai/nodejs/smsAdapter ; npm i
su - www-data -c " pm2 reload all"
su - www-data -c "pm2 list"[154.8.159.209:root@xlp117 /var/www/html/qiantai/nodejs/smsAdapter]# cat restart_nodejs.sh
#!/bin/bash
#
cd /var/www/html/qiantai/nodejs/smsAdapter ; npm i
su - www-data -c " pm2 restart all"
su - www-data -c "pm2 list"