🗒️npm CLI 命令
1. 简介
npm 是 Node JavaScript 平台的 package manager。它将 modules 放在一块以便 node 可以找到它们,同时智能地管理着 dependency conflicts(依赖冲突)。
npm 具有极高的可配置性,以支持各种用例。最常见的是,用它来 publish, discover, install 和 develop node 程序。
如果 package 的依赖项是用 git URL 列出的,那么 npm 会使用 git
命令来安装该依赖项,如果安装失败就会报错。
如果 npm 尝试安装的某个 package 是一个 native node module(本地 node 模块)并且需要编译 C++ 代码,那么 npm 会使用 node-gyp
来完成该任务。
1.1 安装模式
local
./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 val
environment 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.json
package-lock.json
yarn.lock
2.2 常用选项
2.3 配置参数
许多配置参数都和安装有关,毕竟这是 npm 所做的大部分工作。常见选项:
save
save-exact
global
install-strategy
legacy-bundling
global-style
omit
strict-peer-deps
package-lock
foreground-scripts
ignore-scripts
audit
bin-links
fund
dry-run
workspace
workspaces
include-workspace-root
install-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 文件。
相关配置:
yes
force
scope
workspace 相关
workspace
workspaces
workspaces-update
include-workspace-root
4. npx
npx
4.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