[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提供了哪些钩子?各有什么作用?相关推荐

  1. 【SSM+ElementUI】综合练习-Axios Mock EasyMock nodejs npm webpack vuecli restful 请求

    SSM+ElementUI综合练习-day01 一.课程介绍 前后端分离开发(概念熟悉) 搭建前端环境-nodejs&npm&vue&webpack&vuecli(了解 ...

  2. npm : 无法加载文件 D:\...\nodejs\npm.ps1,因为在此系统上禁止运行脚本

    问题: 在VSCode终端使用npm命令时,出现如下报错信息: npm : 无法加载文件 D:\ProgramFiles\nodejs\npm.ps1,因为在此系统上禁止运行脚本.有关详细信息,请参阅 ...

  3. Windows 系统下设置Nodejs NPM全局路径

    Windows下的Nodejs npm路径是appdata,很不爽,想改回来,但是在cmd下执行以下命令也无效 npm config set cache "D:\nodejs\node_ca ...

  4. centos中nodejs npm环境完全删除

    使用n升级失败,npm命令直接报错 yum remove nodejs npm -y cd /usr/local/bin 删除 node 的可执行文件和npm 删除: rm -rf /root/.np ...

  5. Windows环境下的NodeJS+NPM+Bower安装配置步骤

    Windows下的NodeJS安装是比较方便的(v0.6.0版本之后,支持windows native),只需要登陆官网(http://nodejs.org/),便可以看到首页的"INSTA ...

  6. nodejs npm 卸载 + 重新安装

    nodejs npm 卸载 sudo npm uninstall npm -gsudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules / ...

  7. nodejs npm报错 重装 解决方法

    #npm -v 报错 无反应 #重装node.js npm -v 还是报错   然而有一天用自己的笔记本时,用npm下载包报错了,好长时间没有修好,不能惯着破软件丑毛病卸了它(nodejs v10), ...

  8. TypeScript故事—如何使用TypeScript在NPM上发布自定义钩子

    On this page: 在本页面: What is NPM? 什么是NPM? Why React Custom Hooks? 为什么要使用自定义挂钩? Where does TypeScript ...

  9. 关于内网linux系统如果安装nodejs,npm,express,mongodb,forever等

    内网的linux系统要安装nodejs以及express等系列的框架,因为系统是局域网和互联网是物理隔离的,所以,没法像官网的安装教程那样直接install了,只能手动安装,这里已经我们自己的linu ...

最新文章

  1. 前端如何接收 websocket 发送过来的实时数据
  2. 由SecureCRT引发的思考和学习
  3. 面向.Net程序员的前端优化
  4. rman copy相关
  5. 《Python游戏趣味编程》标准IDE运行游戏代码的配置方法
  6. 企业运维经典面试题汇总(4)
  7. 为什么一定要重视隐式反馈?
  8. ARCGIS制作三维地图教程(BIGEMAP)
  9. Linux的网络基础
  10. 抖音表情包项目怎么变现?普通人如何利用表情包短视频月入过万?
  11. 如何获取sha1值和MD5值
  12. .NET6 使用 AutoFac (落地)
  13. 74ls20设计半加器_模拟数字电子技术实验指导及实验室规划方案,上海求育
  14. O2O、C2C、B2B、B2C、C2B的区别
  15. vscode java乱码问题解决
  16. 《Java从入门到放弃》框架入门篇:SpringBoot+mybatis使用注解方式实现mapper
  17. Linux忘记root密码如何找回
  18. 近代物理实验 图像增强 含图像处理结果和思考题
  19. rocksdb性能mysql_mysql rocksdb使用报告
  20. 《Linux那些事儿之我是USB》我是U盘(32)迷雾重重的批量传输(一)

热门文章

  1. unity中创建游戏场景_在Unity中创建Beat Em Up游戏
  2. 如何击败腾讯_击败股市
  3. mysql常用操作记录
  4. [转]FFMPEG调节音频的音量大小,混音
  5. laravel -admin 禁止某一行删除
  6. 【bzoj4025】二分图 LCT
  7. 夺命雷公狗ThinkPHP项目之----企业网站2之数据库的快速设计
  8. 2.UiSelector API 详细介绍
  9. 错误An entity with the same identity already exists in this EntitySet RIA
  10. Silverlight 5 Beta新特性[4]文本缩进控制