cmd命令随笔

759 阅读5分钟

npm

安装

npm【Node Package Manager】是一个NodeJS包管理和分发工具,已经成为了官方的发布Node模块的标准。 安装了nodejs之后,自动就安装了npm命令。

# 检查npm版本
npm --version

常用命令

# 初始化项目
npm init
npm init -y

# 安装package.json中全部依赖项
npm install

# 安装依赖项
npm install 依赖        【安装最新版本】
npm install 依赖@版本   【安装指定版本】

# 移除依赖包
npm uninstall 依赖

# 安装依赖到指定依赖项
npm install 依赖 -S     【安装到生产环境dependencies】
npm install 依赖 -D     【安装到开发环境devDependencies】
npm install 依赖 -P     【安装到同伴依赖项peerDependencies】
npm install 依赖 -O     【安装到可选依赖项optionDependencies】

# 全局安装依赖
npm install 依赖 -g 

# 升级依赖项
yarn update 依赖
yarn update 依赖@版本

# 查看yarn所有命令
npm help

# npm清理缓存 
npm cache clean -f

# 查看当前项目目录下,所有安装的依赖项
npm list

更改npm的源

方法1:使用nrm来改变npm的源地址
方法2:

# 查看当前使用源
npm config get registry

# 设置使用源
npm config set registry https://registry.npmjs.org/

# 安装源
npm install --registry=https://registry.npm.taobao.org

cnpm

CNPM 是中国 npm 镜像的客户端。

安装

# 安装
npm install -g cnpm --registry=https://registry.npm.taobao.org

# 检查是都安装成功
cnpm --version

命令

cnpm命令与npm命令一致。

yarn

快速、可靠、安全的依赖管理工具。 yarn会多一个文件yarn.lock,用来查看我们安装的依赖环境。

安装

# 安装
npm i yarn -g

# 检测是否安装成功
yarn --version

常用命令

# 初始化项目
yarn init
yarn init -y

# 安装package.json中全部依赖项
yarn install

# 安装依赖项
yarn add 依赖        【安装最新版本】
yarn add 依赖@版本   【安装指定版本】

# 移除依赖包
yarn remove 依赖

# 安装依赖到指定依赖项
yarn add 依赖      【安装到生产环境dependencies】
yarn add 依赖 -D   【安装到开发环境devDependencies】
yarn add 依赖 -P   【安装到同伴依赖项peerDependencies】
yarn add 依赖 -O   【安装到可选依赖项optionDependencies】

# 全局安装依赖
yarn global add 依赖   

# 升级依赖项
yarn upgrade 依赖
yarn upgrade 依赖@版本

# 查看yarn所有命令
yarn help

npx

npm从5.2版本开始,增加了npx命令。

# 如果没有npx,可以使用npm命令安装。
npm i npx -g

# 查看npx版本
npx --version

npx功能1 避免全局安装模块

比如,之前使用create-react-app安装脚手架,都是先全局安装create-react-app,再使用,这样安装全局模块,比较耗费内存。
使用npx命令就可以避免全局安装模块,npx会将create-react-app下载到一个临时目录,使用之后就会删除。并且已经创建好了test-react脚手架。

优点

  • 避免全局安装模块,占用本地资源;
  • 不用担心模块版本更新滞后问题;
npx create-react-app test-react

例如:卸载该项目的node_modules,不用先全局安装rimraf。

npx rimraf node_modules

例如:一键执行远程npm源的二进制包

npx cowsay hello

< hello >

    \   ^__^
     \  (oo)\_______
        (__)\       )\/\
            ||----w |
            ||     ||
            

npx功能2 调用项目内部安装的模块

例如,我们项目内部安装了jest测试工具。

npm install jest@24.8.0 -D

我们想要使用jest来初始化项目,来生成jest.config.js文件,修改package.json文件中的script。
"init": "jest --init" 执行npm run init ,才会执行jest --init命令。
但是如果我们不想修改package.json怎么办?

# 可以使用npx命令;
npx jest --init

npx运行原理很简单,就是在运行的时候,会到node_modules/.bin路径和环境变量$PATH里面,检查命令是否存在。由于npx也会检查环境变量$PATH,所以系统命令也是可以调用的。

# 等同于 ls
npx ls

注意:Bash内置的命令不在$PATH中,所以不能够使用,例如,cd是Bash命令,因此不能使用npx cd。

npx功能3 控制调用本地/远程模块

强制使用本地模块 --no-install

想让npx强制使用本地模块,可以使用--no-install参数。但是,如果本地没有此模块,会报错。

npx --no-install rimraf node_modules

// 提示:not found: rimraf

强制使用远程模块 --ignore-existing

如果想要忽略本地已有模块,强行使用远程模块,可以使用--ignore-existing参数,比如本地已经安装了react-react-app,但还是想要使用远程的。

npx --ignore-existing create-react-app my-react-app

npx功能4 使用不同版本node

利用npx可以下载模块的特点,可以指定某个版本的Node运行脚本;

npx node@6 -v
v6.17.1

原理:npm会下载这个版本的node,使用后删掉。
某些场景下,这个方法用来切换 Node 版本,要比 nvm 那样的版本管理器方便一些。

npx 参数

-p参数

使用-p参数,指定模块。先安装了node@6模块,再执行node -v命令

npx -p node@6 node -v

-p参数对于需要安装多个模块的场景很有用。

npx -p lolcatjs -p cowsay [command]

-c参数

如果 npx 安装多个模块,默认情况下,所执行的命令之中,只有第一个可执行项会使用 npx 安装的模块,后面的可执行项还是会交给 Shell 解释。

npx -p lolcatjs -p cowsay 'cowsay hello | lolcatjs'
// 报错

上面代码中,cowsay hello | lolcatjs执行时会报错,原因是第一项cowsaynpx解释,而第二项命令localcatjsShell解释,但是lolcatjs并没有全局安装,所以报错。

-c参数可以将所有命令都是用npx解释。

npx -p lolcatjs -p cowsay -c 'cowsay hello | lolcatjs'

-c参数的另一个作用,是将环境变量带入所要执行的命令。举例来说,npm 提供当前项目的一些环境变量,可以用下面的命令查看。

npm run env | grep npm_

-c参数可以把npm的环境变量添加到npx中。

npx -c 'echo "$npm_package_name"'

npx功能5 执行Github源码

npx还可以执行Github上的模块源码。注意,远程代码必须是一个模块,即必须包含package.json和入口脚本。

# 执行 Gist 代码
$ npx https://gist.github.com/zkat/4bc19503fe9e9309e2bfaa2c58074d32

# 执行仓库代码
$ npx github:piuccio/cowsay hello

nvm

npm是包管理工具,可以下载卸载包;
nvm让你的电脑可以拥有多种node环境,因为node是经常更新的,我们每次想要使用新的就需要重新安装node环境,十分的不方便,因此nvm应运而生。

windows环境下载nvm

下载地址:github.com/coreybutler…
下载指定版本中的nvm-setup.zip压缩文件。

安装nvm

安装nvm是让你选择两个安装目录,一个是nvm安装路径,一个node安装路径。

nvm常用命令

# 检查nvm版本
nvm version
nvm --version

# 下载指定node版本
nvm install 版本号     例:nvm install 12.16.3

# 删除指定node版本
nvm uninstall <版本号>

# 查看本地所有版本
nvm ls
nvm list

# 查看node所有线上版本
nvm list available

# 切换node使用版本
nvm use <版本号>

nrm

nrm可以帮助您在不同的npm源地址之间轻松快速地切换。

安装

# 安装
npm i nrm -g

# 检查是否安装成功
nrm --version

报错

image.png 解决方法 找到nrm所在目录,一般是c盘用户文件夹
C:\Users\用户\AppData\Roaming\npm\node_modules\nrm
打开cjs.js,

image.png

// 注释这一行
const NRMRC = path.join(process.env.HOME, '.nrmrc');

// 添加此行代码
const NRMRC = path.join(process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME'], '.nrmrc');

然后就可以正常使用啦!!!

常用命令

# 查看可使用的源
nrm ls

*代表正在使用的源
* npm -------- https://registry.npmjs.org/
  yarn ------- https://registry.yarnpkg.com/
  cnpm ------- http://r.cnpmjs.org/
  taobao ----- https://registry.npm.taobao.org/
  nj --------- https://registry.nodejitsu.com/
  npmMirror -- https://skimdb.npmjs.com/registry/
  edunpm ----- http://registry.enpmjs.org/
  
# 更换使用的源
nrm use 使用的源

# 添加一个源
nrm add 源名 路径  [home]        【nrm add inpm http://npm.inpm.com/】
home可以添加也可以不加,如果不添加home,nrm home 源名没有效果。

# 删除一个源
nrm del 源名

# 测试源的响应速度
nrm test

  npm ---- 1135ms
* yarn --- 1148ms
  cnpm --- 12056ms
  taobao - 687ms
  nj ----- Fetch Error
  npmMirror  2431ms
  edunpm - Fetch Error
  
# 访问源的主页
nrm home 源名