讲讲 npm run xxx 时都发生了什么?

阅读 1.6k
1 个回答

主要流程如下:

  • 当执行 npm run xxx 时,首先会去项目的 package.json 文件里找 scripts 配置项对应的 xxx 命令,即相当于执行的是在 scripts 中配置命令对应的内容,例如启动 vue 项目 npm run serve 的时候,实际上是执行 vue-cli-service serve 的命令
  • 此时又会通过 ./node_modules/.bin 目录下查找对应的 可执行文件( xxx、xxx.CMD、xxx.ps1 ),需要提供三个不同的文件的原因是 区别在不同环境下执行命令时的区分,实质是通过 node 执行对应的 xxx.js 文件
  • 可执行文件中会包含其具体需要执行的 xxx.js 文件的路径,相当于最终是执行了 node xxx.js

不直接执行对应命令,而配置 scripts  的原因主要是:

  • 基于 script 配置,可以重新命名对应的命令内容,见名知意
  • 直接执行 script 中对应的 命令 可能会发生异常,这种方式相当于是默认在全局安装过了对应的包,例如 只有全局安装了 vue-cli 才能直接使用 vue-cli-service
本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题