學習react時,都會普遍感到困惑,大家常常看見的是npx 而非眾所周知的npm
眾所周知,npm是node.js的軟體包管理器,其目標是自動化的依賴性和軟體包管理。這意味著,可以在package.json檔案中為專案指定所有依賴項(軟體包),當需要為其安裝依賴項時,只要執行npm install,這樣就好啦!
它還提供了版本控制,即可以指定專案的依賴版本,這樣可以在大多數情況下,防止更新破壞專案,或者使用首選版本。
另一方面,npx是執行node軟體包的工具,它從 npm5.2版本開始,就與npm**在一起。npx的作用如下:
1.預設情況下,首先檢查路徑中是否存在要執行的包(即在專案中);2.如果存在,它將執行;3.若不存在,意味著尚未安裝該軟體包,npx將安裝其最新版本,然後執行它;
上文已說明,此行為是npx的預設行為之一,但它具有可用來阻止的標誌。
例如,如果執行npx some-package --no-install,意味著告訴npx ,它應該僅執行。
some-package,如果之前未安裝,則不安裝。
假設有乙個名為my-package的軟體包,想要執行它。好吧,若沒有npx,要執行乙個軟體包,必須通過其本地路徑執行來完成,如下所示:
./node_modules/bin/my-package
或在 package.json檔案的 scripts section中將其定義為單獨的指令碼
}
然後使用npm run my-package執行。現在,運用npx,只需執行npx my-package.,即可輕鬆實現此目的
npx 會幫你執行依賴包裡的二進位制檔案
npm i webpack -d //非全域性安裝
//如果要執行 webpack 的命令
./node_modules/.bin/webpack -v
//有了 npx 之後
npm i webpack -d //非全域性安裝
npx webpack -v
npx 會自動查詢當前依賴包中的可執行檔案,如果找不到,就會去 path 裡找。如果依然找不到,就會幫你安裝。
npm和npx的區別 推薦閱讀
npm5.2 支援npx npm本身實際上不能執行任何包,如果你想去執行某個包,必須在package.json檔案中去定義。當通過npm安裝node包,npm會在node modules下的.bin裡建立乙個軟連線。本地安裝鏈結會放到.node modules bin目錄 安裝到特定專案下的node...
flex布局(主要分清楚容器和條目)
設定在容器上面的屬性 flex direction flex wrap flex flow justify content align items align content 1 flex direction row row reverse column column reverse row 預設值...
分清楚父類物件和子類物件的記憶體分配
一.背景 之前一直對類記憶體分布和物件真正的記憶體分布沒有清楚的理解.看到類記憶體分布時,子類中的變數有一部分是來自父類的,就認為在生成父類物件和子類物件時,他們共有的變數在記憶體上是重疊的.後來想了一下,應該不是這麼回事,就實地考察了下.二.舉例驗證 有如下的繼承關係,有分別定義了對應的物件,考察...