今天咱們來談談關於npm的全局安裝的問題node
npm i webpack -g
默認安裝地址:C:/Users/xxx/AppData/Roaming/npmwebpack
能夠在命令行中直接執行webpack命令web
想要在命令行中執行命令有兩種方式shell
其實在nodejs安裝的時候,安裝的過程當中它會默默地在用戶變量的path中增長一個配置路徑npm
在命令行中執行命令至關於執行對應路徑下面的3中類型的文件webpack-dev-server
通常安裝npm全局安裝一些功能的時候,會生成.cmd文件ui
npm config set prefix 「路徑」
在node安裝的文件夾中有一個文件夾spa
node_modules\npm
這個文件夾下面有一個文件命令行
npmrc
這個文件就是記錄npm全局安裝的路徑3d
修改這個文件就能夠更改npm的全局安裝路徑
注意點: npmrc中設置的路徑必須和環境變量中的路徑保持一致
咱們經常會使用npm run-script的方式來觸發執行命令
配置文件以下
執行命令
npm run start
就會執行webpack-dev-server --inline --hot --quiet命令
既然執行的是webpack-dev-server命令,那麼是否是意味着咱們必須在全局安裝webpack-dev-server,不然如何生效的呢?
也許不少人都沒有意識到這個問題,由於通常咱們在全局已經安裝過了,因此不會發現任何問題。我專門刪掉了全局的webpack-dev-server,而後執行這個命令,發現依然是可用的。那麼是爲何呢?
npm scripts 不是簡簡單單地執行 shell 語句而已,在執行以前它會將 node_modules/.bin/ 加入到環境變量 PATH 中,因此在 npm run-script 中能夠直接使用那些存在於 node_modules/.bin/ 中的可執行文件。
咱們來看一下咱們本地項目中的node_modules/.bin/文件夾
正是因爲npm背後的這一系列的操做才能保證咱們的命令可以正確執行,當npm scripts執行結束以後,會將路徑從環境變量PATH中移除,因此咱們執行完命令去看Path屬性不會存在node_modules/.bin/