它与 package-lock.json 不同,因为它可以与模块一起发布到 NPM 注册表中,而 package-lock.json 则不允许。...如果你手动更改 package.json,则不要期望 package-lock.json 会更新。要始终使用 CLI 命令,例如 install,uninstall 等。...如果有人手动更改 package.json(例如,他们删除了一个软件包,因为这只是删掉一行),那么下次有人运行 npm install 时,它将更改 package-lock.json 以反映对先前软件包的删除...npm uninstall 与 install 类似,但需要用要被删除的模块名称作为参数。这将同时更改 package.json 和 package-lock.json 。...你可以用 npm install 安装特定的依赖项。 仅在需要本地依赖关系树时,甚至在本地开发环境中,都可以在所有地方使用 npm ci。 为你依赖关系的更新做一个重复的任务,例如每月一次。
增加 package.json 文件,这个文件中存放本项目及项目的依赖和版本信息,这样我们就可以一目了然的了解本项目用到了什么,都是什么版本的,不用多处寻找。...是生产环境的依赖项 卸载模块 $ npm uninstall express 卸载后,你可以到 /node_modules/ 目录下查看包是否还存在,或者使用以下命令查看: $ npm ls 更新模块...),然后连同版本号手动将他们添加到模块配置文件package.json中的依赖里(dependencies)。...----> -save和save-dev可以省掉你手动修改package.json文件的步骤。...yarn audit 对已安装的软件包执行漏洞审核 yarn autoclean 从程序包依赖项中清除并删除不必要的文件
说明书文件) npm init -y(可以跳过向导,快速生成) npm install 一次性把dependencies选项中的依赖项全部安装 简写(npm i) npm install 包名 只下载...简写(npm i 包名) npm install --save 包名 下载并且保存依赖项(package.json文件中的dependencies选项) 简写(npm i 包名) npm uninstall...包名 只删除,如果有依赖项会依然保存 简写(npm un 包名) npm uninstall --save 包名 删除的同时也会把依赖信息全部删除 简写(npm un 包名) npm help 查看使用帮助...cnpm又想使用淘宝的服务器来下载: npm install jquery --registry=https://npm.taobao.org; 但是每次手动加参数就很麻烦,所以我们可以把这个选项加入到配置文件中...便于管理依赖项 npm 是一个很好的依赖管理工具,它可以让开发人员轻松地管理和更新项目的依赖项。它提供了一个集中的位置来查找和安装模块,同时也使得分享代码和模块变得更加容易。
而单一(mono)仓库(简称单仓,mono-repo)是指在一个仓库中管理多个模块或包,当代码规模达到一定程度后可称为大型规模仓库(简称大仓),至于这个程度大小并没有明确定义,通常说的大仓可理解为就是单仓...移除依赖 Lerna 并未提供相关的指令,只能手动编辑该包的 package.json,手动移除对应的依赖项,最后再运行lerna bootstrap指令更新依赖。...install 安装依赖,比如给 pkgA 安装依赖:npm install xxx -w pkgA 移除依赖,比如移除 pkgA 包的 xxx 依赖:npm uninstall xxx -w pkgA...无法一次安装多个依赖2. 未提供依赖移除能力 1. 未提供更为精细的发布控制配置2. 依赖安装耗时相对较长 1. 未提供更为精细的发布控制配置2....不原生支持在每个包下动态执行指令 综上,只使用 Lerna 和只使用 Yarn/NPM Workspace 都能完成大部分大仓的管理能力,前者的依赖管理弱一些,后者的发布控制弱一些。
移除依赖 Lerna 并未提供相关的指令,只能手动编辑该包的 package.json,手动移除对应的依赖项,最后再运行lerna bootstrap指令更新依赖。...以上三项:依赖初始化和提升、安装依赖、移除依赖是大仓依赖管理的基本能力,Lerna 做到了不同程度的支持。...依赖初始化和提升:npm install 安装依赖,比如给 pkgA 安装依赖:npm install xxx -w pkgA 移除依赖,比如移除 pkgA 包的 xxx 依赖:npm uninstall...无法一次安装多个依赖2. 未提供依赖移除能力 1. 未提供更为精细的发布控制配置2. 依赖安装耗时相对较长 1. 未提供更为精细的发布控制配置2....不原生支持在每个包下动态执行指令 综上,只使用 Lerna 和只使用 Yarn/NPM Workspace 都能完成大部分大仓的管理能力,前者的依赖管理弱一些,后者的发布控制弱一些。
请注意,您必须使用双引号,它们之间不能有空格。...npm doctor list(列表) 此命令将打印所有安装的包及其版本,以及它们在树结构中的依赖项。 npm list view(视图) 此命令将打印有关包的数据。...如果-g不指定,包将默认安装在本地,项目目录外无法访问。 将软件包安装为生产/开发依赖项 此命令将安装在指定环境中可用的包。...此外,您可以 package.json 在创建文件时将项目的元信息添加到文件中。...如果您 package.json 在目录中没有,并且 npm install moduleName 在该目录路径处触发,则模块将被全局安装。
,所有依赖它的包不需要重新上传自己的package.json 所以说,涉及到可能产生不兼容后果的更新,请一定要修改前两位版本号。。...开发包的过程 如何进行本地debug 在开发过程中,为了本地快速进行调试,可以执行这样的命令: npm link 如果在当前包的文件夹中,可以直接执行npm link 可以简写为npm...在调试完毕后,执行npm unlink来删除链接。 如何创建命令行可执行模块 我们可以在package.json中添加bin字段,用来指定一个文件。...比如说我们使用Flowtype开发了一个包,我们可以直接将源码传到npm上,然后在install命令中执行编译,去除flow comments。...uninstall 如果你的包会对一些全局的数据造成影响(比如某些包可能会去改写.bashrc之类的文件)。 这时你可以在uninstall脚本中将那些修改项进行还原(良心操作)。
可扩展性挂钩用于特定于站点的定制 为什么选择 Volta? 使用 Volta,您可以一次选择 Node 引擎,然后不再担心它。您可以在项目之间切换,而不必手动切换 nodejs 版本。...你可以在工具链中安装 npm 二进制包,而不必定期重新安装它们,或者弄清楚它们停止工作的原因。...与包管理器类似,Volta 会根据当前目录跟踪您正在处理的项目(如果有的话)。Volta 工具链中的工具会自动检测您所处的项目是否使用特定版本的工具,并为您路由到正确的工具版本。...同样地,你可以使用 volta install npm 和 volta install Yarn 分别选择 npm 和 Yarn 包管理器的版本。这些工具将使用您选择的 Node 的默认版本运行。...例如,你可以使用 npm i -g typescript 安全地安装 TypeScript,并享受直接调用 tsc 的便利无需担心项目的包脚本可能意外地依赖于您的机器的全局状态。
默认情况下,首先检查路径中是否存在要执行的包(即在项目中); 如果存在,它将执行; 若不存在,意味着尚未安装该软件包,npx将安装其最新版本,然后执行它; 如果你使用的npm小鱼5.25.2,需要手动安装...而在使用 pnpm 时,依赖会被存储在内容可寻址的存储中,所以: 如果你用到了某依赖项的不同版本,只会将不同版本间有差异的文件添加到仓库。...命令 说明 pnpm up 遵循 package.json 指定的范围更新所有的依赖项 pnpm up --latest 更新所有依赖项,此操作会忽略 package.json 指定的范围 pnpm up...foo@2 将 foo 更新到 v2 上的最新版本 pnpm up "@babel/*" 更新 @babel 范围内的所有依赖项 pnpm remove 别名: rm, uninstall, un...从 node_modules 和项目的 package.json 中删除相关 packages。
,再手动修改 package.json 中的依赖配置 要删除这个包,也可以简单地手动删除这个包的子目录,并删除 package.json 文件中相应的一行即可 实际上,很多人在 npm 2 时代也的确都这么实践过...依然会安装 package-lock.json 中的锁定版本 删除依赖包: Plan A: npm uninstall 并提交 package.json 和 package-lock.json.../node_modules/.bin/ 目录添加到执行环境的 PATH 变量中,因此如果某个命令行包未全局安装,而只安装在了当前项目的 node_modules 中,通过 npm run 一样可以调用该命令.../node_modules/.bin 中已安装的命令, 还可以直接指定未安装的二进制包名执行。...true save true/false 指定是否在 npm install 后保存包为 dependencies, npm 5 起默认为 true 删除指定的配置项命令为 npm config delete
// 列出所有安装的版本 nvm list available // 显示可以安装的所有 Node.js 的版本 nvm ls-remote // 列出所以远程服务器的版本...unalias // 删除已定义的别名 nvm reinstall-packages // 在当前版本node环境下,重新全局安装指定版本号的npm包 nvm uninstall...的dependencies中(生产环境依赖) npm install [name] –save-dev // 安装好后写入package.json的devDepencies中(开发环境依赖) npm...uninstall [name] // 删除模块 npm uninstall [name] -g // 卸载全局模块 npm uninstall [name] –save...// 删除模块,同时删除模块留在package.json中dependencies下的对应信息 npm uninstall [name] –save-dev // 删除模块,同时删除模块留在package.json
npm install 模块:安装好后不写入package.json中 npm install 模块 --save 安装好后写入package.json的dependencies中(生产环境依赖) npm...:是否将在package.json上的相应依赖信息也消除?...npm uninstall 模块:删除模块,但不删除模块留在package.json中的对应信息 npm uninstall 模块 --save 删除模块,同时删除模块留在package.json中dependencies...下的对应信息 npm uninstall 模块 --save-dev 删除模块,同时删除模块留在package.json中devDependencies下的对应信息 利用npm 发布包 发布包之前你首先要有一个...【提示】在发包前可以通过npm的搜索引擎查找是否已存在相同名称的包 【注意点2】还有一点要注意的是npm对包名的限制:不能有大写字母/空格/下滑线!
npm install 模块:安装好后不写入package.json中 npm install 模块 –save 安装好后写入package.json的dependencies中...npm uninstall 模块 删除本地模块时你应该思考的问题:是否将在package.json上的相应依赖信息也消除?...npm uninstall 模块:删除模块,但不删除模块留在package.json中的对应信息 npm uninstall 模块 –save 删除模块,同时删除模块留在package.json...中dependencies下的对应信息 npm uninstall 模块 –save-dev 删除模块,同时删除模块留在package.json中devDependencies下的对应信息...【提示】在发包前可以通过npm的搜索引擎查找是否已存在相同名称的包 【注意点2】还有一点要注意的是npm对包名的限制:不能有大写字母/空格/下滑线!
你可以使用以下命令验证它们是否安装成功: node -v npm -v NPM的基本用法 1. 初始化新项目 要启动一个新的Node.js项目,可以使用npm init命令。...保存依赖到package.json 当你通过上述命令安装依赖时,NPM会自动将依赖项信息保存到package.json文件中。...如果你手动安装依赖,可以使用: npm install --save 4....安装开发依赖 有些依赖项只在开发时使用,你可以使用 --save-dev 选项将其保存到devDependencies中: npm install --save-dev 5...卸载依赖 如果你想移除一个已安装的依赖,可以使用: npm uninstall 6. 全局安装 如前所述,通过 -g 选项可以在全局范围内安装包。
--global npm升级版本 四、npm常用命令 npm init生成package.json文件 后面加-y 可以跳过向导,快速生成 npm install npm install 包名只下载第三方包...npm install --save 包名下载并且保存依赖项(package.json文件中的dependcies选项) npm install 简写 npm i -S npm uninstall...包名只删除,如果有依赖信息依然保存 npm unistall –save 包名删除同时也会把依赖信息也会去除 npm un -S npm help查看指定命令的使用帮助 ####四、解决npm...:深入解析nodejs 如果不想安装cnpm又想使用淘宝的服务器来下载 npm install jquery --registry=https://registry.npm.taobao.org...使用npm下载jq通过后面地址 但是每一次手动这样加参数很麻烦,所以我们可以把这个选项加入配置文件中: 更改下载地址 npm config set registry https://registry.npm.taobao.org
包的结构使您能够轻松跟踪依赖项和版本。...文件安装 npm install 卸载依赖包 npm uninstall npm uninstall gulp --save-dev #卸载开发版本的模块 安装生产阶段的依赖包...注意: npm 的package.json中的~和^ ~ 会匹配最近的小版本依赖包,比如~1.2.3会匹配所有1.2.x版本,但是不包括1.3.0 ^ 会匹配最新的大版本依赖包,比如^1.2.3会匹配所有...1.x.x的包,包括1.3.0,但是不包括2.0.0 更新依赖包 npm update 检查哪些依赖包是否过时 npm outdated 执行上面的命令,会出现如下情况:...> :可以用来查看某个模块的最新版本信息 yarn install:安装package.json里所有包,并将包及它的所有依赖项保存进yarn.lock yarn install --force :强制重新下载所有包
当我们的同事也想使用这个工具的时候,可以手动导入给他 当我们想分享给更多人的使用,该怎么做呢?一般来说方式有两种。...方式一 上传到github,其他人通过github下载我们的代码,手动引用 * 需要手动引用,手动管理依赖,手动控制风险较大。 * 当版本更新或者删除依赖时,需要重复上面的操作。...可以使用npm init 生成一个package.json 文件 也可以通过脚手架创建一个项目,帮助我们自动生成package.json 配置文件图示 配置文件中常见的属性 必须填写的属性 name...有package-lock.json文件 检测lock中包的版本是否和package.json中一致 不一致,那么会重新构建依赖关系,直接会走上面的流程; 一致的情况下,会去优先查找缓存 缓存没有找到...npm 其他常用命令 卸载某个依赖包: npm uninstall package npm uninstall package --save-dev npm uninstall package
在本文中,我将要介绍 npm 的基本用法,告诉你们怎么安装安装本地和全局模块包,怎么删除,升级和安装一个特定版本的模块。同时我还会介绍怎么利用 package.json 文件来管理你的依赖。...到目前为止,最应该使用 package.json 的理由是 package.json 指定了所有的依赖项,所以当我们想克隆别人的代码,我们只需要复制 package.json 文件到项目的根目录并运行...搜索一个模块 你可以看到,这篇教程你我们已经多次使用了 mkdir 命令,那么是否有一个模块可以实现和 mkdir 一样的功能,我们有 npm search 试试看。...通过这种方式,你可以很简单的与其他人分享你的工程文件,你只需给他们一个 package.json 文件,而不用把你的所有依赖模块给他们。...结论 在这篇教程中,我介绍了 npm 的基本用法,包括如何安装 Node.js、如何改变全局模块的安装位置(这样我们可以避免使用 sudo)、如果本地或者去全局安装 npm 模块、同时还介绍了怎么删除,
全局安装 npm install express -g 将包安装到全局环境中,可以直接在命令行里使用。 npm uninstall 卸载模块 我们可以使用以下命令来卸载 Node.js 模块。...npm uninstall express 卸载后,你可以到 /node_modules/ 目录下查看包是否还存在,或者使用以下命令查看: npm ls npm update 更新模块 npm...npm outdated 检查模块是否已经过时 ? 此命令会列出所有已经过时的包,可以及时进行包的更新 npm ls 查看安装的模块 ?...这个命令可以查看安装的模块及依赖 npm init 创建模块 创建模块,package.json 文件是必不可少的。 ?...直接修改配置文件 npm config edit 此时会在默认编辑器中打开配置文件,可以手动修改配置文件 npm cache 管理模块的缓存 ?
领取专属 10元无门槛券
手把手带您无忧上云