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 github.com/vuejs/vue-c...

相关推荐
RDCJM25 分钟前
Springboot的jak安装与配置教程
java·spring boot·后端
_Evan_Yao43 分钟前
对话的边界:HTTP 的克制,SSE 的流淌,WebSocket 的自由
java·后端·websocket·网络协议·http
危桥带雨1 小时前
FLASH代码部分
java·后端·spring
Rust研习社2 小时前
添加依赖库时的 features 是什么?优雅实现编译期条件编译与模块化开发
开发语言·后端·rust
freewlt2 小时前
VS Code 扩展开发:集成 GitHub Copilot 的完整指南
vscode·node.js
马艳泽2 小时前
接到新需求后快速产出可执行的方案和时间估算
后端
Rust研习社2 小时前
Rust 条件变量(Condvar)详解:线程同步的高效方式
后端·rust·编程语言
fliter2 小时前
用逆波兰表达式,彻底搞懂 Rust 宏的递归写法
后端
fliter2 小时前
不开端口,不配 DNS,用树莓派在家搭一个公网可访问的 Web 服务
后端
是你的小恐龙啊2 小时前
【腾讯位置服务开发者征文大赛】地图不再“冷静”:当腾讯位置服务遇上 AI,我打造了一个 AI 智能出行“全能大脑”
后端