当我们在 Node.js 项目中运行 npm install 命令时,这个命令会根据 package.json 文件中的依赖项,下载并安装必要的模块。但这个过程并不简单,它涉及到诸多的步骤和细节。...解析依赖:下载的每个包可能还有自己的依赖项(在该包的 package.json 文件中定义)。因此,npm 需要解析并下载这些依赖项。这个过程是递归的,直到所有的依赖项都被解析和下载。...查找最新版本: npm 将与 npm 注册表通信,确定每个依赖项的最新版本。注册表是一个包含所有公共包信息的中央存储库。决定安装的版本: npm 会确定每个依赖项应该安装的确切版本。...npm 将递归解析这些依赖关系,确保它们也被下载。下载依赖项: npm 开始下载 express@4.17.1 和 lodash@4.17.21,以及它们的所有依赖项。...生成 package-lock.json: 如果项目中没有 package-lock.json 文件,npm 可能会在这一步生成一个,以确保将来的安装使用相同的依赖项版本。
-D 安装到当前项目 并写入到devDependencies devDependencies与dependencies 的区别: devDependencies 是本地开发时用的依赖项 dependencies...并写入到devDependencies devDependencies与dependencies 的区别: devDependencies 是本地开发时用的依赖项 dependencies 是生产环境的依赖项...devdependencies部分 安装依赖 安装依赖包 npm install 会将package.json 里面的devDependencies和dependencies下的所有包都会下载到项目的node_modules...下的依赖包 npm i #在项目中安装包名为 xxx 的依赖包(配置在 dependencies 下) npm i xxx #在项目中安装包名为 xxx 的依赖包(配置在 dependencies...下) npm i xxx --save #在项目中安装包名为 xxx 的依赖包(配置在 devDependencies 下) npm i xxx --save-dev #全局安装包名为 xxx
npm默认提供大量的script供我们调用。 dependencies和devDependencies,可选项,用于配置模块的生产环境依赖包和开发环境依赖包。...当执行npm install时,npm会根据这两个配置项的值去下载安装相关的依赖包。...两者的区别是devDependencies是模块开发过程的依赖包(如:grunt只在开发时有用的模块),并且当其他模块需要依赖当前模块时,当通过npm install 时会自动下载安装...全局:用作在cli上直接调用,而无法在项目中通过require导入依赖包。如将grunt-cli安装到全局时,则可在cli中输入grunt调用了!...默认不带.npmignore文件,若项目中带.gitignore则使用.gitignore文件内容的配置项; 2.
我本人在实际运用场景中,也经常使用 yarn 在安装或删除依赖文件,使用 npm 运行项目中定义的如:启动命令,打包命令等,所以二者完全可以同时使用。 二.Yarn的安装和命令 1....显示依赖bin文件夹的位置 yarn cache 管理用户目录中的依赖缓存 yarn check 验证当前项目中程序包依赖项 yarn config 管理依赖配置文件 yarn create 创建Yarn...用于安装项目的所有依赖项 yarn licenses 列出已安装依赖的许可证及源码url yarn link 链接依赖文件夹 yarn list 列出已安装的依赖 yarn login 存储您在 registry...pack 创建依赖项的压缩gzip yarn policies 规定整个项目中执行Yarn的版本 yarn publish 将依赖发布到npm注册表 yarn remove 删除依赖 yarn run...将指定依赖升级为最新版本 yarn upgrade-interactive 更新过期依赖的简便方法 yarn version 展示依赖版本信息 yarn versions 展示所有依赖项版本信息 yarn
在一个项目中,其包依赖项列表保存在 package.json 文件中。每个已安装的包都被分配了一个版本号,一般由 三部分组成:major.minor.patch 。...有这种插入符号的依赖项意味着至少要安装 15.2.0 的版本。 当存在一个更高的 major 版本时,它就可能被使用。比方说当时有了个 15.6.2,就会在安装时升级到该版本。...如果该包中存在 package-lock 或 shrinkwrap 文件(在并存时后者优先级更高),将会按其进行依赖项安装。...npm update 会更新依赖项列表中出现的所有包,同时也会安装缺失的包。 二者的区别是什么呢?...同时,对 devDependencies 的处理也是不同的: npm install 会安装或升级 devDependencies ,除非添加了 --production 标记 npm update 会忽略
0x01 使用 npm link 使用 npm link 的方式是最常用的方法,具体做法是在联网机器上下载pm2的源码并安装好依赖,拷贝到离线服务器上,最后借助 npm link 将pm2链接到全局区域...首先,将pm2的源代码克隆下来: $ git clone https://github.com/Unitech/pm2.git 然后进入到pm2项目中,安装好所有的依赖: $ cd pm2 $ npm...install 将安装好依赖的pm2文件夹拷贝到目标服务器上,进入pm2目录链接到全局区域: $ cd pm2 $ npm link 这种方式最关键的是借助 npm link 完成链接,但 npm link...所以, npm link 的项目需要安装所有的依赖,包括 dependencies 以及 devDependencies ,而我们如果只是使用而不是开发某个包的话,正常情况下不应该安装 devDependencies...中一个单独的pm2文件夹中,这样我们可以方便地将pm2及其所有相关依赖都拷贝出来。
在我们日常的node开发中,我经常会依赖于这样或那样的第三方包,而本章就来讨论一下如何管理node项目中的依赖。...在这种情况下,最好在devDependencies对象中映射这些附加项,如:构建类包→grunt、gulp;测试类包→mocha、karma;编译类包→coffee。...安装条件:当用户执行npm link命令,或者在该项目的根目录下执行npm install时会安装devDependencies中定义的包。...在npm1和npm2的情况下,会默认将tea安装,而在npm3的情况下,如果你在依赖tea-latte时,却没有依赖tea,那么npm会报错,提示你需要引入tea包。...来说 在你的项目中使用npm3安装了some-package之后,项目的node_modules的文件结构是下面的样子: 也就是说,bundleDependencies 的作用就是在用户安装了 package-a
: dependencies:生产环境包的依赖,一个关联数组,由包的名称和版本号组成 devDependencies:开发环境包的依赖,一个关联数组,由包的名称和版本号组成 当我们在安装包时使用npm...install 包名 --save 安装的包名会在dependencies这个配置项中体现出来。...当我们在安装包时使用npm install 包名 --save-dev 安装的包名会在devDependencies这个配置项中体现出来。...当我们将项目拷贝给其它人,或者发布的时候,我们不会将项目中的 node_modules 也给别人,因为太大,而且有的包可能只在开发阶段需要,但是在上线阶段不需要,所以需要分开指定 所以在将项目发布的时候可以使用下面的命令来配置对应的环境...npm i 所有的包都会被安装 npm i --production 只会安装dependencies中的包 npm i --development 只会安装devDependencies
–save 和 --save-dev 通过 --save 参数安装的包,是将依赖项保存到 package.json 文件中的 dependencies 选项中。...通过 --save-dev 参数安装的包,是将依赖项保存到 package.json 文件中的 devDependencies 选项中。...无论是 --save 或者 --save-dev 安装的包,通过执行 npm install 都会将对应的依赖包安装进来。...但是,在开发阶段会有一些仅仅用来辅助开发的一些第三方包或是工具,然后最终上线运行(到了生产环境), 这些开发依赖项就不再需要了,就可以通过 npm install --production 命令仅仅安装...dependencies 中的 依赖项。
package.json 文件使 npm 可以启动你的项目、运行脚本、安装依赖项、发布到 NPM 注册表以及许多其他有用的任务。...你的项目还必须包含 package.json,然后才能从 NPM 安装软件包。这可能是你在项目中需要它的主要原因之一。...有些用来发布到 NPM,而其他一些则可以帮助 npm CLI 运行应用程序或安装依赖项。...,它列出了项目使用的所有依赖项(项目所依赖的外部代码)。...如果手动添加依赖项列表的话,需要你在把依赖项实际安装到项目之前运行 npm install。
Vue应用程序设置一些基本配置,包括使用依赖项,设置路由,挂载组件等。...可以使用 npm run serve 或 npm run build 在终端中运行这两个脚本 "dependencies" 包含了项目运行所需的依赖项,如 axios, element-ui,vue-router..."devDependencies" 包含了开发项目所需的依赖项,如 @vue/cli-service,vue-template-compiler 等。...所有的依赖项都有对应的版本号,如 "axios": "^1.1.3" 表示 axios 的版本号为 1.1.3。 这些依赖项会在项目中使用到,可以使用 npm install 命令安装。...$mount('#app') 使用了 VueRouter、ElementUi 和 axios 等依赖项。
执行 npm install 后,npm 根据 dependencies 和 devDependencies 属性中指定的包来确定第一层依赖,npm 2 会根据第一层依赖的子依赖,递归安装各个包到子依赖的.../node_modules 这层目录中包含有我们 package.json 文件中所有的依赖包,而这些依赖包的子依赖包都安装在了自己的 node_modules 中 ,形成类似于下面的依赖树: 这样的目录有较为明显的好处...但在多数情况下,npm 无法做到这一点。有以下两个原因: 1)某些依赖项自上次安装以来,可能已发布了新版本 。...中 dependencies 的依赖项相同 dependencies :结构和外层的 dependencies 结构相同,存储安装在子依赖 node_modules 中的依赖包 需要注意的是,并不是所有的子依赖都有...,执行 npm install 时默认会把所有依赖全部安装,但是如果使用 npm install --production 时就只会安装 dependencies 中的依赖,如果是 node 服务项目,
安全性: Yarn拥有一个lockfile(yarn.lock)文件,该文件记录了项目中每个依赖项的版本号和hash值,确保每次安装依赖时获取相同的版本,避免版本不同导致的问题。...可靠性: Yarn的缓存机制能够帮助开发人员在没有网络连接的情况下依然可以构建项目,而npm需要依赖于联网状态。...添加依赖项:使用yarn添加依赖项时,可以选择性地将它们保存到“dependencies”、“devDependencies”或“peerDependencies”中。...> 更新依赖项:可以使用以下命令更新所有依赖项的版本: yarn upgrade 如果只需要更新某个依赖项,可以使用以下命令: yarn upgrade 安装依赖项...:当从代码库中检出项目时,可以运行以下命令安装所有依赖项: yarn install 运行脚本:在package.json文件的“scripts”字段中定义的脚本可以使用以下命令来运行: yarn <script-name
使用npm安装yarn //安装yarn npm install -g yarn // 查看yarn版本 yarn --version // Yarn 淘宝源安装 yarn config set registry...-g yarn常用命令 // 初始化项目 // 同npm init,执行输入信息后,会生成package.json文件 yarn init // yarn 配置项 // 显示所有配置项 yarn config...> [-g|--global] // 安装包 // 安装package.json里所有包,并将包及它的所有依赖项保存进yarn.lock yarn install // 安装一个包的单一版本...yarn install --flat // 强制重新下载所有包 yarn install --force // 只安装dependencies里的包 yarn install --production...--no-lockfile // 不生成yarn.lock yarn install --pure-lockfile // 添加包(会更新package.json和yarn.lock) // 在当前的项目中添加一个依赖包
默认值 npm install -save-dev moduleName :-save-dev 在package文件的devDependencies节点写入依赖 dependencies:运行时的依赖...,发布后,即生产环境下还需要用的模块 devDependencies:开发时的依赖。...下的所有依赖 yarn yarn解决了npm的一些缺陷!...init:初始化项目 同npm init,执行输入信息后,会生成package.json文件 yarn install:安装package.json里所有包,并将包及它的所有依赖项保存进yarn.lock...yarn add [package]: 在当前的项目中添加一个依赖包,会自动更新到package.json和yarn.lock文件中 yarn add [package]@[version
npm 的配置还是挺多的,具体可以参考package.json官方文档[2]。通读了文档之后,我略过了一些基础的配置项,总结了一些我认为比较有用的配置项。 ?...通过npm install --save-dev安装的依赖包都会进入到devDependencies中。 但是,在结合一些构建工具使用时,我们往往会有困惑。...比如我安装了一个包到devDependencies中,但是不小心在项目中引用了它,最后也被 webpack 打包到构建结果中了。这是怎么回事呢?...注意,一个 npm 包的开发者如果声明了peerDependencies,开发环境下在该包目录npm install也不会在node_modules中安装这些依赖,所以往往还需要借助devDependencies...但是,在开发组件时,一般还需要本地开发环境跑一个 demo 试试效果,这时候是依赖 vue 的,所以还需要在 devDependencies 中安装 vue 。
npm 的配置还是挺多的,具体可以参考package.json官方文档[2]。通读了文档之后,我略过了一些基础的配置项,总结了一些我认为比较有用的配置项。...通过npm install --save-dev安装的依赖包都会进入到devDependencies中。 但是,在结合一些构建工具使用时,我们往往会有困惑。...比如我安装了一个包到devDependencies中,但是不小心在项目中引用了它,最后也被 webpack 打包到构建结果中了。这是怎么回事呢?...注意,一个 npm 包的开发者如果声明了peerDependencies,开发环境下在该包目录npm install也不会在node_modules中安装这些依赖,所以往往还需要借助devDependencies...但是,在开发组件时,一般还需要本地开发环境跑一个 demo 试试效果,这时候是依赖 vue 的,所以还需要在 devDependencies 中安装 vue 。
前言 前几天在项目中集成了swagger,一切准备就绪打算将其部署到服务器时发现并不顺利,访问的时候页面白屏,由于我的nest项目采用的是单文件部署,互联网上没有找到相关的解决方案,于是我就成了第一个吃螃蟹的人...集成Swagger 首先,我们通过yarn安装三个依赖包,如下所示: yarn add @nestjs/swagger swagger-ui-express fastify-swagger 安装完成后...: default选项列出了我们项目中的所有接口 image-20220317211550995 通过注解编写接口文档 在@nestjs/swagger库中,它提供了丰富的依赖供我们使用, 为我们生成友好的接口文档...经过一番思考后,应该是因为webpack把所有依赖都打包进main.js了,swagger-ui引用的文件应该是相对路径的,所以才导致了404问题,抱着这个疑问,我打开了swagger-ui-express...devDependencies依赖中。
xxx save 安装并将依赖信息写在package.json中的dependencies中。 xxx D 安装并将依赖信息写在package.json中的devDependencies中。...xxx D 卸载xxx,并将依赖信息从package.json中的devDependencies中清除。 (5)列出已安装依赖 npm list ‐g 默认列出局部依赖。...npm list g 列出已安装的全局依赖。 (6)更新依赖 npm update xxx xxx 局部更新xxx。 xxx g 全局更新xxx。...npm view 查看模块的注册信息 xxx versions 列出xxx的所有版本, 如:npm view jquery versions。...xxx dependencies 列出xxx的所有依赖, 如:npm view gulp dependencies。
来源:阳呀呀 https://segmentfault.com/a/1190000039289332 每次克隆下别人的代码后,执行的第一步就是npm install安装依赖包,安装成功后所有的包都会放在项目的...我们平时用的npm install命令既会安装dependencies中的包,也会安装devDependencies中的包。...package-lock.json文件的作用就是锁定当前的依赖安装结构,与node_modules中下所有包的树状结构一一对应。...requires: 对应子依赖的依赖,与依赖包的package.json中dependencies的依赖项相同 dependencies:结构与外层结构相同,存在于包自己的node_modules中的依赖...默认情况下,只会列出项目中顶层依赖的过时信息。如果想要更深层的查看,可以加上depth参数,如npm-outdated \--depth=1 以下是在我的项目中执行npm-outdated的部分结果。
领取专属 10元无门槛券
手把手带您无忧上云