[NodeJs] npm提供了哪些钩子?各有什么作用?
[NodeJs] npm提供了哪些钩子?各有什么作用?
npm 拥有以下的钩子命令:对于任何在 package.json 的 scripts 字段中定义的命令,可以通过 pre 以及 post 名称前缀,额外定义该任务在执行前、后的额外执行的钩子命令。例如:{
"scripts": {
"premy-task": "echo 'task begin...'",
"my-task": "node my-task.js",
"postmy-task": "echo 'task completed!'"
}
}
my-task 是某个目标命令名;在使用 npm 或 yarn 执行该命令(npm run my-task 或者是 yarn my-task)时,总是会自动的先去查找该命令是否有 pre 命令(即 premy-task),如果有就先执行该先决命令,且成功后再执行原命令 my-task;如果此命令成功结束了,总是会自动的去查找该任务是否有 post 命令(即 postmy-task),如果有就执行该后续命令。这种钩子命令,同样也能作用于一些 npm 客户端自身的行为,例如 install,uninstall 等。于是,我们可以尝试用钩子命令来解决以上的 npm 客户端差异的问题,对用户当前使用的 npm 客户端进行预检:如果当前启动命令的是不合适的 npm 客户端,提前给出提示并抛出错误、中止后续行为。
个人简介
我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易,
但坚持一定很酷。欢迎大家一起讨论
主目录
与歌谣一起通关前端面试题
[NodeJs] npm提供了哪些钩子?各有什么作用?相关推荐
- 【SSM+ElementUI】综合练习-Axios Mock EasyMock nodejs npm webpack vuecli restful 请求
SSM+ElementUI综合练习-day01 一.课程介绍 前后端分离开发(概念熟悉) 搭建前端环境-nodejs&npm&vue&webpack&vuecli(了解 ...
- npm : 无法加载文件 D:\...\nodejs\npm.ps1,因为在此系统上禁止运行脚本
问题: 在VSCode终端使用npm命令时,出现如下报错信息: npm : 无法加载文件 D:\ProgramFiles\nodejs\npm.ps1,因为在此系统上禁止运行脚本.有关详细信息,请参阅 ...
- Windows 系统下设置Nodejs NPM全局路径
Windows下的Nodejs npm路径是appdata,很不爽,想改回来,但是在cmd下执行以下命令也无效 npm config set cache "D:\nodejs\node_ca ...
- centos中nodejs npm环境完全删除
使用n升级失败,npm命令直接报错 yum remove nodejs npm -y cd /usr/local/bin 删除 node 的可执行文件和npm 删除: rm -rf /root/.np ...
- Windows环境下的NodeJS+NPM+Bower安装配置步骤
Windows下的NodeJS安装是比较方便的(v0.6.0版本之后,支持windows native),只需要登陆官网(http://nodejs.org/),便可以看到首页的"INSTA ...
- nodejs npm 卸载 + 重新安装
nodejs npm 卸载 sudo npm uninstall npm -gsudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules / ...
- nodejs npm报错 重装 解决方法
#npm -v 报错 无反应 #重装node.js npm -v 还是报错 然而有一天用自己的笔记本时,用npm下载包报错了,好长时间没有修好,不能惯着破软件丑毛病卸了它(nodejs v10), ...
- TypeScript故事—如何使用TypeScript在NPM上发布自定义钩子
On this page: 在本页面: What is NPM? 什么是NPM? Why React Custom Hooks? 为什么要使用自定义挂钩? Where does TypeScript ...
- 关于内网linux系统如果安装nodejs,npm,express,mongodb,forever等
内网的linux系统要安装nodejs以及express等系列的框架,因为系统是局域网和互联网是物理隔离的,所以,没法像官网的安装教程那样直接install了,只能手动安装,这里已经我们自己的linu ...
最新文章
- 前端如何接收 websocket 发送过来的实时数据
- 由SecureCRT引发的思考和学习
- 面向.Net程序员的前端优化
- rman copy相关
- 《Python游戏趣味编程》标准IDE运行游戏代码的配置方法
- 企业运维经典面试题汇总(4)
- 为什么一定要重视隐式反馈?
- ARCGIS制作三维地图教程(BIGEMAP)
- Linux的网络基础
- 抖音表情包项目怎么变现?普通人如何利用表情包短视频月入过万?
- 如何获取sha1值和MD5值
- .NET6 使用 AutoFac (落地)
- 74ls20设计半加器_模拟数字电子技术实验指导及实验室规划方案,上海求育
- O2O、C2C、B2B、B2C、C2B的区别
- vscode java乱码问题解决
- 《Java从入门到放弃》框架入门篇:SpringBoot+mybatis使用注解方式实现mapper
- Linux忘记root密码如何找回
- 近代物理实验 图像增强 含图像处理结果和思考题
- rocksdb性能mysql_mysql rocksdb使用报告
- 《Linux那些事儿之我是USB》我是U盘(32)迷雾重重的批量传输(一)
热门文章
- unity中创建游戏场景_在Unity中创建Beat Em Up游戏
- 如何击败腾讯_击败股市
- mysql常用操作记录
- [转]FFMPEG调节音频的音量大小,混音
- laravel -admin 禁止某一行删除
- 【bzoj4025】二分图 LCT
- 夺命雷公狗ThinkPHP项目之----企业网站2之数据库的快速设计
- 2.UiSelector API 详细介绍
- 错误An entity with the same identity already exists in this EntitySet RIA
- Silverlight 5 Beta新特性[4]文本缩进控制