Nodejs 第五章(Npm run 原理)

npm run xxx 发生了什么

按照下面的例子npm run dev 举例过程中发生了什么

读取package json 的scripts 对应的脚本命令(dev:vite),vite是个可执行脚本,他的查找规则是:

  • 先从当前项目的node_modules/.bin去查找可执行命令vite
  • 如果没找到就去全局的node_modules 去找可执行命令vite
  • 如果还没找到就去环境变量查找
  • 再找不到就进行报错

如果成功找到会发现有三个文件

因为nodejs 是跨平台的所以可执行命令兼容各个平台

  • .sh文件是给Linux unix Macos 使用
  • .cmd 给windows的cmd使用
  • .ps1 给windows的powerShell 使用

npm 生命周期

没想到吧npm执行命令也有生命周期!!!

json 复制代码
    "predev": "node prev.js",
    "dev": "node index.js",
    "postdev": "node post.js"

执行 npm run dev 命令的时候 predev 会自动执行 他的生命周期是在dev之前执行,然后执行dev命令,再然后执行postdev,也就是dev之后执行

运用场景例如npm run build 可以在打包之后删除dist目录等等

post例如你编写完一个工具发布npm,那就可以在之后写一个ci脚本顺便帮你推送到git等等

谁用到了例如vue-cli

https://github.com/vuejs/vue-cli/blob/dev/package.json

相关推荐
十有八七6 小时前
AI 开发,本质是一场文档的生命周期管理
前端·人工智能
Hyyy7 小时前
普通前端自救记录——第0周
前端
前端若水7 小时前
在 Vue 2 与 Vue 3 中使用 markdown-it-vue 渲染 Markdown 和数学公式
前端·javascript·vue.js
之歆7 小时前
DAY_10 JavaScript 深度解析:原型链 · 引用类型 · 内置对象 · 数组方法全攻略(下)
开发语言·前端·javascript·ecmascript
行星飞行8 小时前
从 cursor 、 Claude code 迁移到 codex,30 分钟快速上手 codex 常用技巧
前端
Pu_Nine_98 小时前
前端埋点从入门到企业实践:手写一个Demo + 主流方案对比
前端·埋点
ZC跨境爬虫8 小时前
跟着 MDN 学 HTML day_56:(HTML 表格基础完全指南)
前端·javascript·ui·html·音视频
Dxy12393102168 小时前
CSS滤镜使用方法完全指南
前端·css
AC赳赳老秦8 小时前
OpenClaw与WPS宏联动:批量执行WPS复杂操作,解决办公表格批量处理难题
java·前端·数据库·自动化·需求分析·deepseek·openclaw
Larcher9 小时前
# 告别“古法编程”:吴恩达 AI 课程学习笔记与生日贺卡项目实战
前端·github·ai编程