當你使用npm安裝一個package時,會在當前目錄的node_modules目錄中生成一個對應的package目錄,其中包含了該package所有的文件。如果你想運行這個package目錄里的文件,通常的做法是切換到這個目錄下,然后執行對應的文件。
例如你在項目中安裝了karma依賴項,如果想直接運行karma命令,需要先切換到目錄/node_modules/karma/bin,然后運行:
karma start --fast=true
且不說這樣做很麻煩,而且當前命令執行時的上下文參數也可能會有問題。例如上面命令執行時可能無法正常加載根目錄下的karma.conf.js配置項。
有兩種解決辦法!
一是全局安裝該package對應的cli,然后直接在命令行中運行。例如:
npm install -g karma-cli
另一種辦法是借助於npm中的npx命令,例如:
npx karma start --singleRun --coverage=true --fast=true
npm從5.2版本開始都自帶npx,使得運行node_modules目錄中的package命令更加方便。當你運行npx <package name>時,npx會自動查找node_modules目錄中對應的package位置,並從中找到可以執行的文件。
有關npx的詳細使用方法可以參考這里的一篇文章:http://www.ruanyifeng.com/blog/2019/02/npx.html