前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >【分享】并行或串行运行多个NPM脚本的CLI工具

【分享】并行或串行运行多个NPM脚本的CLI工具

作者头像
前端小鑫同学
发布于 2022-12-26 01:46:54
发布于 2022-12-26 01:46:54
1.5K00
代码可运行
举报
运行总次数:0
代码可运行

Dear,大家好,我是“前端小鑫同学”,😇长期从事前端开发,安卓开发,热衷技术,在编程路上越走越远~

背景介绍:

我们的node项目的脚本通通都是放在了package.jsonscripts节点下面,当我们要在一个命令执行完后接着去执行下一个命令的时候(如:打包后需要推送打包内容到服务器)就需要增加一条脚本并使用&&进行拼接两条或多条命令来实现,并且符号&windows下的cmd.exe是不兼容的。

本期介绍的主角(npm-run-all):

今天主要想分享一个比较不错的Node包,我们可以通过提供的命令来制定脚本的执行计划,在你开发Node应用、Cli工具或着有复杂的多条script需要执行的时候会很有帮助,同样也是在掘金学到的知识再分享一下😂。

🍔有什么用?

  1. 简化脚本:

使用前: npm run clean && npm run build:css && npm run build:js && npm run build:html

使用后: npm-run-all clean build:*

  1. 跨平台:

主要是因为Windows用户通常使用的cmd.exe不支持&来拼接多条命令,但用户量又大。

🍟怎么安装?

Node版本>=4均可

命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm install npm-run-all --save-dev
yarn add npm-run-all --dev

🌭怎么使用?

具体案例可参考文末整理的思维导图或项目的readme文件

  1. 定制复杂计划:npm-run-all
  2. 定制串行计划:run-s
  • 案例:

使用前: npm run clean && npm run lint && npm run build

使用后: run-s clean lint build

Examples

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
run-s build:*
run-s build:**
run-s lint clean build:**
run-s --silent --print-name lint clean build:**
run-s -sn lint clean build:**
  1. 定制并行计划:run-p
  • 案例:

使用前: npm run lint & npm run build

使用后: run-p lint build

Examples

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
run-p watch:**
run-p --print-label "build:** -- --watch"
run-p -l "build:** -- --watch"
run-p start-server start-browser start-electron
  1. 在NodeJS里面使用

综上所述的出的结论:

  1. 缺点1:脚本冗余;
  2. 缺点2:跨平台能力差。
命令支持:

npm-run-all

run-s:串行执行示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "scripts": {
      "clean": "rimraf dist",
      "lint":  "eslint src",
      "build": "babel src -o lib"
  }
}
  1. npm run 执行:npm run clean && npm run lint && npm run build
  2. run-s执行:run-s clean lint build

run-p:并行执行示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "scripts": {
      "clean": "rimraf dist",
      "lint":  "eslint src",
      "build": "babel src -o lib"
  }
}
  1. npm run 执行:npm run lint & npm run build
  2. run-p执行:run-p lint build
  3. 提示:
    1. 代码非正常退出其他脚本将终止进程;
    2. & 操作符在windows系统的cmd.exe不被支持。

思维脑图:https://www.processon.com/view/link/61b453ac5653bb1c942bb3c3

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-01-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
npm并行&串行执行多个scripts命令
通过npm run <commander> 可以运行 package.json 中脚本,Npm 命令不能提供立即运行多个脚本的方式,同时运行需要打开多个终端窗口
奋飛
2020/05/28
6.8K0
授人予渔,VSCode 如何调试 Vite 代码?
大家好,我是码农小余。在正式开始剖析 Vite 源码之前,先了解调试 CLI 工具的前期准备工作。亲们可以跟着步骤在自己的 PC 上准备好调试环境,后续每读完一个小节,建议都去单步调试、执行一遍流程,效果更佳。
码农小余
2022/06/16
7.6K0
授人予渔,VSCode 如何调试 Vite 代码?
npm scripts 使用指南
Node 开发离不开 npm,而脚本功能是 npm 最强大、最常用的功能之一。 本文介绍如何使用 npm 脚本(npm scripts)。 一、什么是 npm 脚本? npm 允许在package.j
ruanyf
2018/04/12
1.2K0
npm scripts 使用指南
用 npm scripts 来构建前端项目的尝试
最近读了 Why I Left Gulp and Grunt for npm Scripts。读完后,觉的这文章写的相当不错,就决定尝试下。
前端GoGoGo
2018/08/24
1.5K0
element-ui 简单二次开发
当前项目为vue 2.6 + element-ui 2.14.1, 我们需要开发一个类似表格的表单组件, 可以看到除了表格样式以外,我们还需要嵌套各种表单组件,而组件功能基本与框架功能一致,如果对每个组件都做独立开发,显然是不现实的。所以我们的目标一定是尽量使用原组件
copy_left
2020/12/17
1.9K0
【架构师(第三十六篇)】 业务组件库开发之发布到 NPM
结果发现这一行 Ts 报错了,原因是 vue 的版本不一致,真实的场景下不会出现这个问题,因为真实情况下组件库用的是上级的依赖。
一尾流莺
2022/12/10
8230
【架构师(第三十六篇)】 业务组件库开发之发布到 NPM
如何使用 npm 执行本地安装 npm 包里的二进制文件
笔者在做产品开发时,需要标题提到的这方面的知识储备,因此做了一些调研,把学习笔记以文章的形式输出,以备将来查阅。
8808.tw
2024/08/22
1620
从 Element UI 源码的构建流程来看前端 UI 库设计
由于业务需要,近期团队要搞一套自己的UI组件库,框架方面还是Vue。而业界已经有比较成熟的一些UI库了,比如ElementUI、AntDesign、Vant等。
前端森林
2020/06/28
2K0
可能是目前最详细从零开始配置 TypeScript 项目的教程
本文出自于掘金的子弈[1],原文链接 从零开始配置 TypeScript 项目[2]。
桃翁
2020/08/10
5.2K0
可能是目前最详细从零开始配置 TypeScript 项目的教程
VueUse scripts,他们都模仿过的脚本
今天我们就“单纯”地从 VueUse scripts 入手,从中探索我们后续也许会用上的第三方包库。
码农小余
2022/06/16
1.2K0
VueUse scripts,他们都模仿过的脚本
如何在gitlab上发布npm包
大家好,我是「柒八九」。一个「专注于前端开发技术/Rust及AI应用知识分享」的Coder。
前端柒八九
2024/02/29
5940
如何在gitlab上发布npm包
脚本任务执行器 —— npm-run-all 源码解析
最近在整一个 OpenAPI 编排器,想到 npm-run-all 的任务流。看了一下这个 6 年前的源码。npm-run-all[1] 是一个用来并行或者串行运行多个 npm 脚本的 CLI 工具。阅读完本文,你能收获到:
码农小余
2022/12/05
2K0
脚本任务执行器 —— npm-run-all 源码解析
package.json——从vue的package.json来详细说明package.json内容
Vue2.7.14源码阅读的补充内容,~c package.json c~ 文件是项目的清单。 它可以做很多完全互不相关的事情。 例如,它是用于工具的配置中心。 它也是 npm 和 yarn 存储所有已安装软件包的名称和版本的地方;
思索
2024/08/15
1510
如何为你的微信小程序瘦身?
众所周知,微信小程序在发布的时候,对提交的代码有1M大小的限制!所以,如果你正在写一个功能稍微复杂一点的小程序,就必须得时刻小心注意你的代码是不是快触及这个底线了。
一斤代码
2018/08/21
7350
怎样开发一个 Node.js 命令行工具包
1. 初始化项目 在一个合适的地方创建项目文件夹,为了演示,本次的项目名为 demo-cli,然后执行以下命令初始化项目: npm init 执行以上命令之后,会先配置一些 package.json 的基础信息,按提示输入即可: 1.1 配置 package.json 为了方便,我们把项目从 vscode 中打开,然后对 package.json 进行详细配置,篇幅有限,这里仅介绍其中比较重要的部分: 推荐阅读:package.json 详细配置。 1.1.1 name 项目名,同时也是发包的时候别人引入
用户1097444
2022/06/29
1K0
怎样开发一个 Node.js 命令行工具包
Vue.js——60分钟browserify项目模板快速入门
在之前的一系列vue.js文章,我们都是用传统模式引用vue.js以及其他的js文件的,这在开发时会产生一些问题。
Vincent-yuan
2020/07/16
1.3K0
NPM 学习笔记整理
npm 之于 Node ,就像 pip 之于 Python , gem 之于 Ruby , composer 之于 PHP 。
ihoey
2018/10/31
6720
从项目演进看前端工程化发展
这篇文章想重点来和大家聊一下「现代库编写」的话题,相信技术和思维上,对你会有启发。
CSDN技术头条
2019/10/15
1.1K0
从项目演进看前端工程化发展
零基础学习weex(三)weex工程及工具
本篇内容: <pre> Weex的项目结构 npm webpack ESLint Devtools </pre>
sweet说好的幸福
2020/12/23
1.5K0
零基础学习weex(三)weex工程及工具
从零打造组件库
业内优秀的组件库比如 Antd Design 和 Element UI,大大节省了我们的开发时间。那么,做一套组件库,容易吗?
leocoder
2022/03/09
1.7K0
从零打造组件库
推荐阅读
相关推荐
npm并行&串行执行多个scripts命令
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文