🗒️npm CLI 命令
1. 简介
npm 是 Node JavaScript 平台的 package manager。它将 modules 放在一块以便 node 可以找到它们,同时智能地管理着 dependency conflicts(依赖冲突)。
npm 具有极高的可配置性,以支持各种用例。最常见的是,用它来 publish, discover, install 和 develop node 程序。
npm search # 在 public registry 中所有的可用内容
npm install # 安装
npm ls # 显示已安装的如果 package 的依赖项是用 git URL 列出的,那么 npm 会使用 git 命令来安装该依赖项,如果安装失败就会报错。
如果 npm 尝试安装的某个 package 是一个 native node module(本地 node 模块)并且需要编译 C++ 代码,那么 npm 会使用 node-gyp 来完成该任务。
1.1 安装模式
npm install # 本地安装(默认),会在当前目录安装
npm install -g # 全局安装
npm install --globallocal
./node_modules
./node_modules/.bin
global
$npm_config_prefix/lib/node_modules
$npm_config_prefix/bin
1.2 开发相关
使用 npm 来开发和发布代码,相关内容:
npm init:创建package.json文件npm link:将 current working code 链接到 Node 的 path 中,就不必在每次更新内容时 reinstallnpm install:如果不需要符号链接,那就 install 好了。特别是从 registry 安装其他人的代码adduser:创建一个帐户或登录,npm 会把 credentials(凭据)存储在 user config file 里
npm publish:将代码上传到 registry
1.3 配置
我们可以对 npm 进行配置,它会从以下 5 个地方读取其配置选项,按优先级排序:
command line switches:
--key valenvironment variables:环境变量中以
npm_config_为前缀的任何配置比如
export npm_config_key=val
user configs:
$HOME/.npmrc文件是 ini 格式的配置列表该文件地址也可以通过 cli, env 来设置
global configs:
./etc/npmrc文件该文件地址也可以通过 cli, env, user config 来设置
defaults:
lib/utils/config-defs.js默认配置选项,这里面的值都不能修改
运行 npm config ls -l 命令,可查看 npm 内部的一组 configuration parameters。
更多 config settings 和 shorthands 详见 npm CLI / Using npm / Config。
2. npm install
npm install一些补充。
2.1 版本要求
如果要安装的 package 有 package-lock, npm shrinkwrap 文件, 或 yarn lock 文件,那么依赖项的安装就会按照那个来,遵循的优先顺序是:
npm-shrinkwrap.jsonpackage-lock.jsonyarn.lock
2.2 常用选项
2.3 配置参数
许多配置参数都和安装有关,毕竟这是 npm 所做的大部分工作。常见选项:
savesave-exactglobalinstall-strategylegacy-bundlingglobal-styleomitstrict-peer-depspackage-lockforeground-scriptsignore-scriptsauditbin-linksfunddry-runworkspaceworkspacesinclude-workspace-rootinstall-links
2.4 安装算法
eg1. A{B,C}, B{C}, C{D} 会生成
eg2. A{B,C}, B{C,D@1}, C{D@2} 会生成
关于 npm 创建的特定文件夹结构,详见配置 folders。
3. npm init
npm init创建 package.json 文件。
相关配置:
yesforcescopeworkspace 相关
workspaceworkspacesworkspaces-updateinclude-workspace-root
4. npx
npx4.1 npx vs npm
npm, node package manager, node 包管理器
npx, node package execute, node 包执行器
npm 本身并不运行任何软件 package。如果要使用 npm 运行一个 package,则必须在 package.json 文件中指定这个 package。要用 npm 执行一个包时,可以:
用普通的 npm 运行一个包比较繁琐。所以 npx 出现了。
4.2 npx 简介
从 npm 5.2.0 版以来,npx 就被预先捆绑在 npm 中了。
npx 命令是从 npm package 运行任意 command,不论是本地安装的 package 还是要从远程拉取的。运行的上下文和 npm run 命令的一样。要请求的 packages:
先检查 local project dependencies
若(1)没有,则会将 package 安装在 npm cache 的文件夹中
该文件夹会被添加到
PATH环境变量中,在执行过程中
尤其对那些以前没安装过的 package,有时只想用一下但并不想全局安装它们,就可以用 npx 了。
--package 选项指定的任何 packages 都将在执行 command 的 PATH 中提供,以及任何本地安装的 package executables(可执行文件)。--package 选项可以指定多次,以执行提供的 command。
Last updated