5

npm install和npm run的过程

 1 year ago
source link: https://blog.p2hp.com/archives/8634
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK