npm 是什么

npm(node pakage manage) 第三方包的管理器,并且是 Node.js 平台的默认包管理工具。

npm 做什么

通过 npm 可以安装、共享、分发代码,管理项目依赖关系。

例子:

  • 在配置webpack的时候 需要的很多第三方模块(模块占个坑) 就需要通过npm install 去安装
  • 在实际项目工作中,项目比较庞大就需要做项目的拆分,但很多基础工具方法,和功能,都可以公用的,我们可以 将公共代码放到自己公司提供的对应的私库上,日后根据业务的拓展 只要 去更新库 ,各个项目 去更新对应版本号重新install就能实现代码同步更新,从而避免重复性工作

npm inatsll的过程

  • 先检查node_modules 目录下是否存在 如果不存在(会检查电脑上/usr/local/bin下的压缩包) 则继续下面操作
  • npm 向 registry查询模块压缩包的网址
  • 下载压缩包,存放到全局对应的/.npm目录下
  • 同时解压压缩到当前项目的node_modules目录下

npm install的几种方式的区别

npm install xxx # 安装模块项目目录下
npm install -g xxx # -g 的意思是将模块安装到全局,具体安装到磁盘哪个位置,要看 npm config prefix 的位置。
npm install --save xxx # --save 的意思是将模块安装到项目目录下,并在package文件的dependencies节点写入依赖。
npm install --save-dev xxx # --save-dev 的意思是将模块安装到项目目录下,并在package文件的devDependencies节点写入依赖。

npm install X -g

  • 安装模块到全局,不会在项目node_modules目录中保存模块包。
  • 不会将模块依赖写入devDependencies或dependencies 节点。
  • 运行 npm install 初始化项目时不会下载模块。

npm install X

  • 会把X包安装到node_modules目录中
  • 不会修改package.json
  • 删除项目node_modules文件夹之后运行npm install命令时,也不会自动安装X

npm install X --save

开发和生产环境都需要的 ,比如js框架,ui库,网络请求库,代码执行需要的依赖

  • 会把X包安装到node_modules目录中
  • 会在package.json的dependencies属性下添加X
  • 之后运行npm install命令时,会自动安装X到node_modules目录中
  • 之后运行npm install --production或者注明NODE_ENV变量值为production时,会自动安装到node_modules目录中,即是在线上环境运行时也将安装

npm install X –save-dev

只是开发环境需要:比如wenpack的相关的插件,打包编译阶段需要的依赖

  • 会把X包安装到node_modules目录中
  • 会在package.json的devDependencies属性下添加X
  • 之后运行npm install命令时,会自动安装X到node_modules目录中
  • 之后运行npm install –production或者注明NODE_ENV变量值为production时,不会自动安装X到node_modules目录中

小结

运行时需要用到的包使用––save,否则使用––save-dev。

npm run的过程

  • package.json文件里 script 配置对应命令XXX
  • npm run XXX 其实就是执行上面配置 命令创建一个脚本shell
  • 在脚本执行之前,会将环境变量添加在全局下,执行完毕后会删除对应的path
  • 以开发包 dev 举例子 ,执行config-dev.js
  • 配置文件里 从entry文件出发,从上到下加载依赖,然后执行脚本,最后打成一个包

题外话:身边也有的同事 用npx 那npx又是什么??

  • 他的功能和npm run一样
  • 小小的区别,npm 如果没有找到某个依赖 它会自动先安装使用完后还会自己删除
  • 更深入的我也没有了解

以上就是本文全部内容,转载备注来源:https://www.hack002.com/thread-8843-1-1.html