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 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
相关博文
npm install和npm run的过程